设计主页 > 网站制作 > CSS教程 >

使用CSS伪元素实现文字部分变色的方法

设计前沿收集 / 佚名 时间:2015-08-05 09:00

思路

思路很简单,就是一个字写两遍,一个字只显示部分,不过不能真的把一个字写两遍。这里就需要用到CSS伪元素:before和:after,记住这个“伪元素”的“伪”字,表明它本来是不存在的。我们的方法就是在伪元素里放置相同的字符,只显示半个,而原字符显示另外一半,最后把它们拼成一个字。
CSS Code

CSS Code复制内容到剪贴板
  1. .hf {
  2. display: inline-block;
  3. font-size: 80px;
  4. line-height:80px;
  5. color: #000;
  6. position: relative;
  7. overflow: hidden;
  8. whitewhite-space: pre;/* 处理空格 */
  9. }
  10. .hf:before {
  11. position: absolute;
  12. left: 0;
  13. top: 0;
  14. color: #f00;
  15. display: block;
  16. width: 30%;/*如果想变色一半文字,就设置50%*/
  17. content: attr(data-content);/* 伪元素的动态获取内容 */
  18. overflow: hidden;
  19. }

HTML Code

XML/HTML Code复制内容到剪贴板
  1. <span class="hf" data-content="W">W</span>
  2. <span class="hf" data-content="e">e</span>
  3. <span class="hf" data-content="b">b</span>
  4. <span class="hf" data-content="前">前</span>
  5. <span class="hf" data-content="端">端</span>

Demo

附:w3school对:before和:after伪元素的讲解

CSS2 - :before 伪元素

":before" 伪元素可以在元素的内容前面插入新内容。

下面的例子在每个 <h1> 元素前面插入一幅图片:

CSS Code复制内容到剪贴板
  1. h1:before
  2. {
  3. content:url(logo.gif);
  4. }

亲自试一试
CSS2 - :after 伪元素

":after" 伪元素可以在元素的内容之后插入新内容。

下面的例子在每个 <h1> 元素后面插入一幅图片:

CSS Code复制内容到剪贴板
  1. h1:after
  2. {
  3. content:url(logo.gif);
  4. }

亲自试一试