属性选择器
可以设置带有特定属性或属性值的 HTML 元素的样式。
[attribute] 选择器
[attribute] 选择器用于选取带有指定属性的元素。
例如:选择所有带有 target
属性的 <a>
元素。
<p>带有 target 属性的链接获得颜色背景:</p>
<a href="https://www.baidu.com/">baidu</a>
<a href="https://www.csdn.net/" target="_blank">CSDN</a>
<a href="https://github.com/" target="_top">GitHub</a>
a[target] {
background-color: yellow;
}
[attribute="value"] 选择器
[attribute="value"] 选择器用于选取带有指定属性和值的元素。
例如:选取所有带有 target="_blank"
属性的 <a>
元素。
<p>带有 target 属性的链接获得颜色背景:</p>
<a href="https://www.baidu.com/">baidu</a>
<a href="https://www.csdn.net/" target="_blank">CSDN</a>
<a href="https://github.com/" target="_top">GitHub</a>
a[target=_blank] {
background-color: yellow;
}
[attribute~="value"] 选择器
[attribute~="value"] 选择器选取属性值包含指定词的元素,且指定词前后不可以有任何字符。
例如:选取 title
属性包含 flower
单词的所有元素。
<p>title 属性包含 "flower" 单词的所有图像会有黄色边框。</p>
<img src="/html5/eg_cute.gif" title="eg_cute flower" />
<img src="/html5/eg_cute.gif" title="eg_cuteflower" />
<img src="/html5/eg_cute.gif" title="tree" />
[title~=flower] {
border: 5px solid yellow;
}
注
上面的例子会匹配的属性元素:title="flower"
、title="summer flower"
以及 title="flower new"
但不匹配:title="my-flower"
、title="summer_flower"
或 title="flowers"
[attribute|="value"] 选择器
[attribute|="value"] 选择器用于选取指定属性以指定值开头的元素,且指定值后面只能有短横杠(-
)字符连接其他值。
例如:选取 class 属性以 top
开头的所有元素。
<p class="top header">Welcome</p>
<p class="top-text">Hello world!</p>
<p class="top">Test!</p>
<p class="topcontent">Are you learning CSS?</p>
[class|=top] {
background: yellow;
}
注
上面的例子会匹配的属性元素:class="top"
以及 class="top-text"
但不匹配:class="top header"
、class="texttop"
、class="text_top"
或 class="topcontent"
[attribute^="value"] 选择器
[attribute^="value"] 选择器用于选取指定属性以指定值开头的元素,指定值后面可以是任何字符。
例如:选取 class 属性以 top
开头的所有元素。
<p class="top header">Welcome</p>
<p class="top-text">Hello world!</p>
<p class="top_text">Test!</p>
<p class="topcontent">Are you learning CSS?</p>
[class^="top"] {
background: yellow;
}
注
值不必是完整单词
[attribute$="value"] 选择器
[attribute$="value"] 选择器用于选取指定属性以指定值结尾的元素,且指定值前面不可以有横杠(-
)字符连接其他值。
例如:选取 class 属性以 test
结尾的所有元素。
<p class="top header test">Welcome</p>
<p class="top-text">Hello world!</p>
<p class="top_test">Test!</p>
<p class="topcontenttest">Are you learning CSS?</p>
[class$="test"] {
background: yellow;
}
注
值不必是完整单词
上面的例子会匹配的属性元素:class="top header test"
、class="top_test"
以及 class="topcontenttest"
但不匹配:class="top-text"
[attribute*="value"] 选择器
[attribute*="value"] 选择器选取属性值包含指定词的元素,指定值前后可以是任何字符。
例如:选取 class 属性包含 te
的所有元素。
<p class="top header test">Welcome</p>
<p class="top-text">Hello world!</p>
<p class="top_test">Test!</p>
<p class="topcontenttest">Are you learning CSS?</p>
[class*="te"] {
background: yellow;
}
设置表单样式
若需为不带 class
或 id
的表单设置样式,属性选择器会很有用。例如:
<form name="input" action="" method="get">
Firstname:<input type="text" name="Name" value="Bill" size="20" />
Lastname:<input type="text" name="Name" value="Gates" size="20" />
<input type="button" value="Example Button" />
</form>
input[type=text] {
width: 150px;
display: block;
margin-bottom: 10px;
background-color: yellow;
}
input[type=button] {
width: 120px;
margin-left: 35px;
display: block;
}