我有以下代码:
<div id="slide1">
<span id="tf1">BUILDING WEBSITES<br>BLABLABLABLA</span>
</div>
和这个CSS:
#tf1 {
color: #505050;
text-shadow: #a8a8a8 -2px 1px 0px;
font-size: 40px;
font-family: Arial, Helvetica, sans-serif;
}
#tf1::first-line {
color: #FFFFFF;
text-shadow: #000 1px 1px 1px;
font-size: 60px;
font-family: Arial, Helvetica, sans-serif;
}
#slide1 {
position: absolute;
padding: 20px;
width: 700px;
}
对我来说一切似乎都很好;除了:: first-line没有出现,并且所有内容都出现在我的CSS代码的#tf1部分中。
什么是最重要的想法?或者如果我的代码中有错误?
答案 0 :(得分:4)
您需要添加:
#tf1 {
display: block;
}
由于span
具有默认display: inline
样式,而且 docs 约为::first-line
:
第一行只在块容器盒中有意义,因此 :: first-line伪元素只对带有a的元素有影响 显示块,内联块,表格单元格或表格标题的值。在 所有其他情况,::第一行没有效果。
<强> Updated Fiddle 强>
答案 1 :(得分:2)
::first-line
仅适用于块样式元素。默认情况下,span
是内联的,所以整个事情都是&#34;一行&#34;,就像在,它是一条连续的线,只是一直在继续,并在遇到边界。
您可以将span
设置为display: block;
以使::first-line
正常工作:
#tf1 {
display: block;
}
答案 2 :(得分:0)
此伪元素仅适用于块级元素(当显示设置为块,内联块,表格标题,表格单元格时)。如果在内联元素上设置,则不会发生任何事情,即使该内联元素在其中有换行符。
#tf1 {
color: #505050;
text-shadow: #a8a8a8 -2px 1px 0px;
font-size: 40px;
font-family: Arial, Helvetica, sans-serif;
display: block; /* assign display property value*/
}