2016-04-13 12 views
-5

Sagen wir, ich möchte alle Wörter, die das Sprachattribut beginnen mit . Wie ich es bisher getan haben:Sprachauswahl in css

<!DOCTYPE html> 
<html> 
<head> 
<style> 
[lang|=en] { 
    background: yellow; 
} 
</style> 
</head> 
<body> 

<p lang="en">This is English!</p> 
<p lang="en-us">This is English and US!</p> 
<p lang="en-gb">English here too!</p> 
<p lang="us">US is not English!</p> 
<p lang="no">Definitely not English !</p> 


</body> 
</html> 

Wie kann ich alle Elemente zugreifen, deren lang Attributwert ist en ohne die Verwendung von [Attribut | = value] Selektor oder lang() Pseudoklasse. Gibt es einen Weg?

Antwort

6

Der Pseudonym: lang() (und wohl in geringerem Maße der Attributselektor) wurde speziell für diesen Zweck erstellt. Sie können nicht erwarten, dass Elemente basierend auf ihrem Gebietsschema übereinstimmen, wenn Sie nicht: lang() verwenden.

+1

Ich habe nicht überprüft, also frage ich, ist 'p [lang^=" en - "]' nicht möglich? – Pogrindis

+0

können wir es nicht irgendwie mit dem nth-Kind oder ersten Typ-Selektoren tun? Es muss einen Weg geben ... –

+0

@ Pogrindis: Es ist, wenn Ihr lang-Attribut garantiert mit En- beginnt. Es wird natürlich nicht mit [lang = en] Elementen übereinstimmen. Aber ich verstehe nicht, warum das OP diese beiden Selektoren gezielt vermeiden muss. – BoltClock