Summary
Attribute selectors select an element using the presence of a given attribute or attribute value.
[attr]- Represents an element with an attribute name of attr.
[attr=value]- Represents an element with an attribute name of attr and whose value is exactly "value".
[attr~=value]- Represents an element with an attribute name of attr the value of which is a whitespace-separated list of words, one of which is exactly "value".
[attr|=value]- Represents an element with an attribute name of attr. Its value can be exactly “value” or can begin with “value” immediately followed by “-” (U+002D). It can be used for language subcode matches.
[attr^=value]- Represents an element with an attribute name of attr the value of which is prefixed by "value".
[attr$=value]- Represents an element with an attribute name of attr the value of which is suffixed by "value".
[attr*=value]- Represents an element with an attribute name of attr the value of which contains at least one occurrence of string "value" as substring.
[attr operator value i]- Adding an
i(orI) before the closing bracket causes the value to be compared case-insensitively (for characters within the ASCII range).
Example
/* All spans with a "lang" attribute are bold */
span[lang] {font-weight:bold;}
/* All spans in Portuguese are green */
span[lang="pt"] {color:green;}
/* All spans in US English are blue */
span[lang~="en-us"] {color: blue;}
/* Any span in Chinese is red, matches
simplified (zh-CN) or traditional (zh-TW) */
span[lang|="zh"] {color: red;}
/* All internal links have a gold background */
a[href^="#"] {background-color: gold;}
/* All spans whose first declared class begins with "main" have a yellow background */
/* Span with the class="banner main" would not be affected. */
span[class^="main"] {background-color: yellow;}
/* All links to urls ending in ".cn" are red */
a[href$=".cn"] {color: red;}
/* All links with "example" in the url have a grey background */
a[href*="example"] {background-color: #CCCCCC;}
/* You could also use hyphenated attributes without double quote */
span[data-lang="zh-TW"] {color: #9C27B0;}
/* All email inputs have a blue border */
/* This matches any capitalization of
"email", e.g. "email", "EMAIL", "eMaIL", etc. */
input[type="email" i] {border-color: blue;}
<div class="hello-example">
<a href="http://example.com">English:</a>
<span lang="en-us en-gb en-au en-nz">Hello World!</span>
</div>
<div class="hello-example">
<a href="#portuguese">Portuguese:</a>
<span lang="pt">Olá Mundo!</span>
</div>
<div class="hello-example">
<a href="http://example.cn">Chinese (Simplified):</a>
<span lang="zh-CN">世界您好!</span>
</div>
<div class="hello-example">
<a href="http://example.cn">Chinese (Traditional):</a>
<span lang="zh-TW">世界您好!</span>
</div>
<div class="hello-example">
<a href="http://example.tw">Hyphenated Attribute:</a>
<span data-lang="zh-TW">世界您好!</span>
</div>
Specifications
| Specification | Status | Comment |
|---|---|---|
| Selectors Level 4 The definition of 'attribute selectors' in that specification. |
Working Draft | Added modifier for ASCII case-insensitive attribute value selection. |
| Selectors Level 3 The definition of 'attribute selectors' in that specification. |
Recommendation | |
| CSS Level 2 (Revision 1) The definition of 'attribute selectors' in that specification. |
Recommendation | Initial definition |
Browser compatibility
| Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|---|
| Basic support | (Yes) | (Yes) | 1.0 (1.7 or earlier) | 7 | 9 | 3 |
| Case-insensitive modifier | 49.0 | No support | 47.0 (47.0) | ? | ? | 9 |
| Feature | Android | Chrome for Android | Edge | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile | Chrome for Android |
|---|---|---|---|---|---|---|---|---|
| Basic support | ? | (Yes) | (Yes) | 1.0 (1) | ? | ? | ? | (Yes) |
| Case-insensitive modifier | ? | 49.0 | No support | 47.0 (47.0) | ? | ? | 9 | 49.0 |
See also
Document Tags and Contributors
Tags:
Contributors to this page:
lanshunfang,
KadirTopal,
torazaburo,
erikadoyle,
jananananana,
cvrebert,
TylerH,
ziyunfei,
yisibl,
Sebastianz,
jpmedley,
keithjgrant,
MusikAnimal,
SphinxKnight,
ntoniazzi,
FredB,
teoli,
jswisher,
zajac,
Sheppy,
Rob W,
austingulati,
timemachine3030,
Miken32,
BijuGC
Last updated by:
lanshunfang,