The :lang()
CSS pseudo-class matches elements based on the language they are determined to be in.
/* Selects any <p> in English (en) */
p:lang(en) {
quotes: '\201C' '\201D' '\2018' '\2019';
}
Note: In HTML, the language is determined by a combination of the lang
attribute, the <meta>
element, and possibly by information from the protocol (such as HTTP headers). For other document types there may be other document methods for determining the language.
Syntax
Formal syntax
:lang( <language-code> )
Parameter
<language-code>
- A
<string>
representing the language you want to target. Acceptable values are specified in the HTML spec.
Examples
In this example, the :lang()
pseudo-class is used to match the parents of quote elements (<q>
) using child combinators. Note that this doesn't illustrate the only way to do this, and that the best method to use depends on the type of document. Also note that Unicode values are used to specify some of the special quote characters.
HTML
<div lang="en"><q>This English quote has a <q>nested</q> quote inside.</q></div>
<div lang="fr"><q>This French quote has a <q>nested</q> quote inside.</q></div>
<div lang="de"><q>This German quote has a <q>nested</q> quote inside.</q></div>
CSS
:lang(en) > q { quotes: '\201C' '\201D' '\2018' '\2019'; }
:lang(fr) > q { quotes: '« ' ' »'; }
:lang(de) > q { quotes: '»' '«' '\2039' '\203A'; }
Result
Specifications
Specification | Status | Comment |
---|---|---|
Selectors Level 4The definition of ':lang()' in that specification. | Working Draft | Adds wildcard language matching and comma-separated list of languages. |
Selectors Level 3The definition of ':lang()' in that specification. | Recommendation | No significant change. |
CSS Level 2 (Revision 1)The definition of ':lang()' in that specification. | Recommendation | Initial definition. |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Update compatibility data on GitHub
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
:lang()
|
Chrome
Full support 1 |
Edge
Full support 12 |
Firefox
Full support 1 |
IE
Full support 8 |
Opera
Full support 8 |
Safari
Full support 3.1 |
WebView Android
Full support 1 |
Chrome Android
Full support 18 |
Firefox Android
Full support 4 |
Opera Android
Full support 10.1 |
Safari iOS
Full support 3.1 |
Samsung Internet Android
Full support 1.0 |
Legend
- Full support
- Full support
See also
- Language-related pseudo-classes:
:lang
,:dir
- HTML
lang
attribute - HTML
translate
attribute - BCP 47 - Tags for Identifying Languages
:lang() by Mozilla Contributors is licensed under CC-BY-SA 2.5.