思路
思路很简单,就是一个字写两遍,一个字只显示部分,不过不能真的把一个字写两遍。这里就需要用到CSS伪元素:before和:after,记住这个“伪元素”的“伪”字,表明它本来是不存在的。我们的方法就是在伪元素里放置相同的字符,只显示半个,而原字符显示另外一半,最后把它们拼成一个字。
CSS Code
CSS Code
复制内容到剪贴板
.hf {
display
:
inline
-
block
;
font-size
:
80px
;
line-height
:
80px
;
color
:
#000
;
position
:
relative
;
overflow
:
hidden
;
white
white-space
:
pre
;
/* 处理空格 */
}
.hf:before {
position
:
absolute
;
left
: 0;
top
: 0;
color
:
#f00
;
display
:
block
;
width
: 30%;
/*如果想变色一半文字,就设置50%*/
content
:
attr
(data-
content
);
/* 伪元素的动态获取内容 */
overflow
:
hidden
;
}
HTML Code
XML/HTML Code
复制内容到剪贴板
<span class="hf" data-content="W">W</span>
<
span
class
=
"hf"
data-content
=
"e"
>
e
</
span
>
<
span
class
=
"hf"
data-content
=
"b"
>
b
</
span
>
<
span
class
=
"hf"
data-content
=
"前"
>
前
</
span
>
<
span
class
=
"hf"
data-content
=
"端"
>
端
</
span
>
Demo
附:w3school对:before和:after伪元素的讲解
CSS2 - :before 伪元素
":before" 伪元素可以在元素的内容前面插入新内容。
下面的例子在每个 <h1> 元素前面插入一幅图片:
CSS Code
复制内容到剪贴板
h1:before
{
content
:
url
(logo.gif);
}
亲自试一试
CSS2 - :after 伪元素
":after" 伪元素可以在元素的内容之后插入新内容。
下面的例子在每个 <h1> 元素后面插入一幅图片:
CSS Code
复制内容到剪贴板
h1:after
{
content
:
url
(logo.gif);
}
亲自试一试