2014-09-25 8 views
5

Html-Code:CSS :: before wird zunichte gemacht :: first-letter

<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); 
} 

Meine Frage ist: Warum :: before ist tötet :: first-letter-Regel ? Was geht hier vor sich? Wenn :: before entfernt wird, funktioniert :: first-letter gut.

Gibt es eine Alternative, um den ersten Buchstaben in diesem Beispiel anzusteuern, ohne html zu ändern?

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

+1

https://developer.mozilla.org/en-US/docs/Web/CSS/::first-letter – disinfor

Antwort

5

Von the spec:

Nach der Regel p::before {content: "Note: "} der Wähler p::first-letter matches the "N" of "Note".

Beachten Sie auch, dass die display Eigenschaft ist ungültig auf :first-letter und :first-line Pseudo-Elemente. Wiederum aus der Spezifikation:

Eine zukünftige Version dieser Spezifikation kann dieses Pseudo-Element für weitere Anzeigetypen gelten lassen.

Dies ist das beabsichtigte Verhalten.

Umgehung:

HTML:

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

und 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); 
} 

Demo: http://jsfiddle.net/kvaxmhth/3/

+0

Also, warum das Bild angezeigt wird? Die Anzeige: Keiner sollte in dieser Logik auf das Bild angewendet werden? – Maigret

+2

Das Bild ist ein Bild, kein Buchstabe. – Mooseman

-1

Es tötet nicht, die :: first-letter hat nicht die Anzeige Erklärung.

Weitere Informationen: http://www.w3schools.com/cssref/sel_firstletter.asp

+1

Scheint mit Sichtbarkeit zu arbeiten: versteckt; obwohl. http://jsfiddle.net/Lukedturnbull/kvaxmhth/1/ –

+0

Hier hat nicht funktioniert. –

+1

@LukeTurnbull 'Sichtbarkeit' funktioniert nicht in Firefox v32. Welcher Browser funktioniert? – disinfor

Verwandte Themen