Помимо селекторов элементов, селекторов идентификаторов и классов, комбинированных селекторов, селекторов псевдоклассов и псевдоэлементов в CSS еще есть селекторы атрибутов, которые позволяют отбирать HTML элементы по конкретным атрибутам и значениям атрибутов.
CSS селектор [атрибут]
Селектор [атрибут]
позволяет отбирать HTML элементы, имеющие заданный атрибут.
В следующем примере выбираются все элементы <a> с атрибутом target
:
a[target] {
background-color: yellow;
}
CSS селектор [атрибут="значение"]
Селектор [атрибут="значение"]
позволяет отбирать HTML элементы, имеющие заданный атрибут с конкретным значением.
В следующем примере выбираются все элементы <a> с атрибутом target="_blank"
:
a[target="_blank"] {
background-color: yellow;
}
CSS селектор [атрибут~="значение"]
Селектор [атрибут~="значение"]
позволяет отбирать HTML элементы, в значении заданного атрибута которого содержится определенное слово.
В следующем примере выбираются все элементы с атрибутом title
со значением из отдельных слов, разделенных пробелами, одно из которых "flower":
[title~="flower"] {
border: 5px solid yellow;
}
CSS декларация из примера выше будет относиться к элементам с такими атрибутами как title="flower", title="summer flower" и title="flower new", но не будет относиться к элементам с таким атрибутам как title="my-flower" или title="flowers".
CSS селектор [атрибут|="значение"]
Селектор [атрибут|="значение"]
позволяет отбирать HTML элементы с заданным атрибутом, у которого есть в точности заданное значение, либо заданное значение с дефисом (-) на конце.
[class|="top"] {
background: yellow;
}
Значение должно быть либо целым словом, как, например class="top"
, словом с дефисом в конце, как, например, class="top-text"
.
CSS селектор [атрибут^="значение"]
Селектор [атрибут^="значение"]
позволяет отбирать HTML элементы с заданным атрибутом, у которого значение начинается с указанных символов.
В следующем примере выбираются все элементы с атрибутом class
, у которого значение начинается с "top":
[class^="top"] {
background: yellow;
}
Значение не обязательно должно быть целым словом!
CSS селектор [атрибут$="значение"]
Селектор [атрибут$="значение"]
позволяет отбирать HTML элементы с заданным атрибутом, у которого значение оканчивается указанными символами.
В следующем примере выбираются все элементы с атрибутом class
, у которого значение оканчивается на "test":
[class$="test"] {
background: yellow;
}
Значение не обязательно должно быть целым словом!
CSS селектор [атрибут*="значение"]
Селектор [атрибут*="значение"]
позволяет отбирать HTML элементы с заданным атрибутом, который содержит заданное значение.
В следующем примере выбираются все элементы с атрибутом class
, в значении которого есть символы "te":
[class*="te"] {
background: yellow;
}
Значение не обязательно должно быть целым словом!
Определение стилей формы
Селекторы атрибутов особенно полезны для определения стилей форм без атрибутов класса или идентификатора:
input[type="text"] {
width: 150px;
display: block;
margin-bottom: 10px;
background-color: yellow;
}
input[type="button"] {
width: 120px;
margin-left: 35px;
display: block;
}