2014-09-25 88 views
5

HTML代码:CSS ::之前抵消::第一个字母

<h1>Example title</h1> 

CSS:

h1::first-letter{ 
    display:none; 
} 
h1::before{ 
    content: url(http://icons.iconarchive.com/icons/ariil/alphabet/32/Letter-E-icon.png); 
} 

我的问题是:为什么是::之前杀死::第一个字母规则?这里发生了什么?如果:: before被删除,则:: first-letter可以正常工作。

有没有其他方法可以在不更改html的情况下定位此示例中的第一个字母?

http://jsfiddle.net/Borachio/kvaxmhth/

+1

https://developer.mozilla.org/en-US/docs/Web/CSS/::first-letter – disinfor 2014-09-25 15:21:54

回答

5

the spec

规则p::before {content: "Note: "}后,选择 p::first-letter matches the "N" of "Note"

还要注意display属性是基于:first-letter:first-line伪元素无效。再次,从规格:

该规范的未来版本可能会允许此伪元素 适用于更多的显示类型。

这是预期的行为。

解决方法:

HTML:

<div><h1>Example title</h1></div> 

和CSS:

h1{ 
    display: inline-block; 
} 
h1::first-letter{ 
    font-size: 0px; 
} 
div::before{ 
    content: url(http://icons.iconarchive.com/icons/ariil/alphabet/32/Letter-E-icon.png); 
} 

演示:http://jsfiddle.net/kvaxmhth/3/

+0

那么,为什么正在显示的图像?显示:不应该不应用于此逻辑中的图像? – Maigret 2014-09-25 15:24:55

+2

图像是图像,而不是字母。 – Mooseman 2014-09-25 15:28:59

-1

这是不杀生,对::第一个字母没有显示声明。

的更多信息:http://www.w3schools.com/cssref/sel_firstletter.asp

+1

似乎可以使用可见性:隐藏;虽然。 http://jsfiddle.net/Lukedturnbull/kvaxmhth/1/ – 2014-09-25 15:30:03

+0

这里没有工作。 – 2014-09-25 15:34:33

+1

@LukeTurnbull'visibility'在Firefox v32中不起作用。什么浏览器正在工作? – disinfor 2014-09-25 15:35:52

相关问题