如何使用 CSS3 转换字体样式?

Posted

技术标签:

【中文标题】如何使用 CSS3 转换字体样式?【英文标题】:How to transform font-style with CSS3? 【发布时间】:2015-06-10 04:05:23 【问题描述】:

我有一个单字标题,它被分成两半,用@keyframe 进行动画处理,并在页面中间相遇。 问题:我需要两半之一在它到达页面中间的适当位置后从常规转换为斜体。 由于我不打算使标题可点击,因此使用悬停毫无意义。 有没有办法在不使用 javascript 的情况下做到这一点...?

【问题讨论】:

【参考方案1】:

由于字体样式为not an animatable property,您可以使用倾斜转换。

h1 span 
  position: relative;

#title_part1 
  animation: part1_move 2s;

#title_part2 
  
  animation: part2_move 2s,part2_skew 4s;
  
  display: inline-block;
  -ms-transform: skewX(-20deg);
  transform: skewX(-20deg);


@keyframes part1_move 
  from 
    left: -100px;
  
  to 
    left: 0;
  



@keyframes part2_move 
  from 
    left: 100px;
    
  to
    left:0
  


@keyframes part2_skew
  from 
    transform:skewX(0);
    -ms-transform:skewX(0)
  
  50%
    transform:skewX(0);
    -ms-transform:skewX(0)
  
  to
    transform:skewX(-20deg);
    -ms-transform:skewX(-20deg)
  
<h1>
  <span id="title_part1">The start and </span>
  <span id="title_part2">the end of my title </span>
</h1>

相关问题:

Fade from normal text to italics text smoothly?

Gradual italics?

【讨论】:

我想你错过了after it has reached its proper position in the middle of the page 但这应该不难,只需制作两个不同的动画,其中倾斜动画的运行延迟等于移动动画的持续时间。很好的答案。 已更正,谢谢。制作两个动画并延迟第二个动画确实会更好。 @gael - 感谢您的帮助。出于某种原因,我认为“倾斜”与多边形或形状有关。 其中的文字也会出现倾斜!请注意,容器必须是块元素。在那种情况下inline-block 就足够了。 字体样式不可动画化的真正原因是,在常规和斜体之间制作动画不仅仅是将文本向某个方向倾斜的问题。在这种情况下,它会产生所谓的假斜体,其中排字机只是将类型倾斜而不是在实际的斜体中打印,因为字体不提供斜体,或者因为它不受支持。

以上是关于如何使用 CSS3 转换字体样式?的主要内容,如果未能解决你的问题,请参考以下文章

关于css3样式rem的自适应属性问题

css3中的字体样式

web前端入门到实战:常见CSS3选择器和文本字体样式汇总

css字体渐变,css怎样定义让字体有渐变颜色

导入 html 字体及其样式变化?

CSS3.3