2016-04-13 5 views
-5

言語属性を開始するすべての単語に、を付けて色付けしたいとします。私は今のところそれを行っている方法: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> 

は、どのように私は、そのLANG属性値を[属性| =値]の使用せずに エンあるすべての要素にアクセスすることができセレクタまたはLANGを()を疑似クラス。方法はありますか?

答えて

6

:lang()擬似(および、おそらくそれよりも小さい程度の属性セレクタ)は、この目的のために特別に作成されたものです。 lang()を使用しないと、ロケールに基づいて要素を一致させることはできません。

+1

私はチェックしていないので、 'p [lang^=" en - "]'はできません。 – Pogrindis

+0

私は何とかnth-childまたは最初の型セレクタでそれを行うことはできませんか?方法があるはずです... –

+0

@Pogrindis:あなたのlang属性がen-で始まることが保証されています。もちろん[lang = en]要素と一致しません。しかし、なぜOPがその2つのセレクターを特に避けなければならないのかわかりません。 – BoltClock