<div>
<a href="http://example.com">English:</a>
<span lang="en-us en-gb en-au en-nz">Hello World!</span>
</div>
<div>
<a href="#portuguese">Portuguese:</a>
<span lang="pt">Olá Mundo!</span>
</div>
<div>
<a href="http://example.cn">Chinese (Simplified):</a>
<span lang="zh-CN">世界您好!</span>
</div>
<div>
<a href="http://example.cn">Chinese (Traditional):</a>
<span lang="zh-TW">世界您好!</span>
</div>
BCD tables only load in the browser
Селекторы атрибутов | htmlbook.ru
Многие теги различаются по своему действию в зависимости от того, какие в них используются атрибуты. Например, тег <input> может создавать кнопку, текстовое поле и другие элементы формы всего лишь за счёт изменения значения атрибута type. При этом добавление правил стиля к селектору INPUT применит стиль одновременно ко всем созданным с помощью этого тега элементам. Чтобы гибко управлять стилем подобных элементов, в CSS введены селекторы атрибутов. Они позволяют установить стиль по присутствию определённого атрибута тега или его значения.
Рассмотрим несколько типичных вариантов применения таких селекторов.
Простой селектор атрибута
Устанавливает стиль для элемента, если задан специфичный атрибут тега. Его значение в данном случае не важно. Синтаксис применения такого селектора следующий.
[атрибут] { Описание правил стиля }
Селектор[атрибут] { Описание правил стиля }
Стиль применяется к тем тегам, внутри которых добавлен указанный атрибут. Пробел между именем селектора и квадратными скобками не допускается.
В примере 13.1 показано изменение стиля тега <q>, в том случае, если к нему добавлен атрибут title.
Пример 13.1. Вид элемента в зависимости от его атрибута
HTML5CSS 2.1IECrOpSaFx
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Селекторы атрибутов</title>
<style>
Q {
font-style: italic; /* Курсивное начертание */
quotes: "\00AB" "\00BB"; /* Меняем вид кавычек в цитате */
}
Q[title] {
color: maroon; /* Цвет текста */
}
</style>
</head>
<body>
<p>Продолжая известный закон Мерфи, который гласит: <q>Если неприятность
может случиться, то она обязательно случится</q>, можем ввести свое наблюдение:
<q title="Из законов Фергюссона-Мержевича">После того, как веб-страница
будет корректно отображаться в одном браузере, выяснится,
что она неправильно показывается в другом</q>.</p>
</body>
</html>
Результат примера показан на рис. 13.1.
Рис. 13.1. Изменение стиля элемента в зависимости от применения атрибута title
В данном примере меняется цвет текста внутри контейнера <q>, когда к нему добавляется title. Обратите внимание, что для селектора Q[title] нет нужды повторять стилевые свойства, поскольку они наследуются от селектора Q.
Атрибут со значением
Устанавливает стиль для элемента в том случае, если задано определённое значение специфичного атрибута. Синтаксис применения следующий.
[атрибут=»значение»] { Описание правил стиля }
Селектор[атрибут=»значение»] { Описание правил стиля }
В первом случае стиль применяется ко всем тегам, которые содержат указанное значение. А во втором — только к определённым селекторам.
В примере 13.2 показано изменение стиля ссылки в том случае, если тег <a> содержит атрибут target со значением _blank. При этом ссылка будет открываться в новом окне и чтобы показать это, с помощью стилей добавляем небольшой рисунок перед текстом ссылки.
Пример 13.2. Стиль для открытия ссылок в новом окне
HTML5CSS 2.1IECrOpSaFx
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Селекторы атрибутов</title>
<style>
A[target="_blank"] {
background: url(images/blank.="значение"] { Описание правил стиля }В первом случае стиль применяется ко всем элементам, у которых значение атрибута начинаются с указанного текста. А во втором — только к определённым селекторам. Использование кавычек не обязательно, но только если значение содержит латинские буквы и без пробелов.
Предположим, что на сайте требуется разделить стиль обычных и внешних ссылок —
ссылки, которые ведут на другие сайты. Чтобы не вводить в тег <a> новый класс, воспользуемся селекторами атрибутов. Внешние ссылки характеризуются
добавлением к адресу протокола, например, для доступа к гипертекстовым документам
используется протокол HTTP. Поэтому внешние ссылки начинаются с ключевого слова http://, его и добавляем к селектору A,
как показано в примере 13.3.
Пример 13.3. Изменение стиля внешней ссылки
HTML5CSS 2.1IECrOpSaFx
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Селекторы атрибутов</title>
<style>
A[href^="http://"] {
font-weight: bold /* Жирное начертание */
}
</style>
</head>
<body>
<p><a href="1.html">Обычная ссылка</a> |
<a href="http://htmlbook.ru" target="_blank">Внешняя
ссылка на сайт htmlbook.ru</a></p>
</body>
</html>
Результат примера показан ниже (рис. 13.3).
Рис. 13.3. Изменение стиля для внешних ссылок
В данном примере внешние ссылки выделяются жирным начертанием. Также можно
воспользоваться показанным в примере 13.2 приёмом и добавлять к ссылке
небольшое изображение, которое будет сообщать, что ссылка ведёт на другой сайт.
Значение атрибута оканчивается определённым текстом
Устанавливает стиль для элемента в том случае, если значение атрибута оканчивается указанным
текстом. Синтаксис применения следующий.
[атрибут$="значение"] { Описание правил стиля }
Селектор[атрибут$="значение"] { Описание правил стиля }
В первом случае стиль применяется ко всем элементам у которых значение атрибута завершается заданным
текстом. А во втором — только к определённым селекторам.
Таким способом можно автоматически разделять стиль для ссылок на сайты домена ru и для
ссылок на сайты других доменов вроде com, как показано в примере 13.4.
Пример 13.4. Стиль для разных доменов
HTML5CSS 2.1IECrOpSaFx
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Селекторы атрибутов</title>
<style>
A[href$=".ru"] { /* Если ссылка заканчивается на .ru */
background: url(images/ru.png) no-repeat 0 6px; /* Добавляем фоновый рисунок */
padding-left: 12px; /* Смещаем текст вправо */
}
A[href$=".com"] { /* Если ссылка заканчивается на .com */
background: url(images/com.png) no-repeat 0 6px;
padding-left: 12px;
}
</style>
</head>
<body>
<p><a href="http://www.yandex.com">Yandex.Com</a> |
<a href="http://www.yandex.ru">Yandex.Ru</a></p>
</body>
</html>
В данном примере содержатся две ссылки, ведущие на разные домены — com
и ru. При этом к каждой такой ссылке с помощью стилей добавляется своя фоновая
картинка (рис. 13.4). Стилевые свойства будут применяться только для тех ссылок, атрибут href которых оканчивается на «.ru» или «.com».
Заметьте, что добавив к имени домена слэш (http://www.yandex.ru/) или адрес
страницы (http://www.yandex.ru/fun.html), мы изменим тем самым окончание и стиль
применяться уже не будет. В этом случае лучше воспользоваться селектором, у которого заданный текст встречается в любом месте значения атрибута.
Рис. 13.4. Добавление картинки к ссылкам
Значение атрибута содержит указанный текст
Возможны варианты, когда стиль следует применить к тегу с определённым
атрибутом, при этом частью его значения является некоторый текст. При этом точно не известно,
в каком месте значения включен данный текст — в начале, середине или конце. В подобном случае следует использовать
такой синтаксис.
[атрибут*="значение"] { Описание правил стиля }
Селектор[атрибут*="значение"] { Описание правил стиля }
В примере 13.5
показано изменение стиля ссылок, в атрибуте href которых встречается слово «htmlbook».
Пример 13.5. Стиль для разных сайтов
HTML5CSS 2.1IECrOpSaFx
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Селекторы атрибутов</title>
<style>
[href*="htmlbook"] {
background: yellow; /* Желтый цвет фона */
}
</style>
</head>
<body>
<p><a href="http://www.htmlbook.ru/html/">Теги HTML</a> |
<a href="http://stepbystep.htmlbook.ru">Шаг за шагом</a> |
<a href="http://webimg.ru">Графика для Веб</a></p>
</body>
</html>
Результат данного примера показан на рис. 13.5.
Рис. 13.5. Изменение стиля для ссылок, в адресе которых встречается «htmlbook»
Одно из нескольких значений атрибута
Некоторые значения атрибутов могут перечисляться через пробел, например имена классов. Чтобы задать стиль при наличии в списке требуемого значения применяется следующий синтаксис.
[атрибут~="значение"] { Описание правил стиля }
Селектор[атрибут~="значение"] { Описание правил стиля }
Стиль применяется в том случае, если у атрибута имеется указанное значение или оно входит в список значений, разделяемых пробелом (пример 13.6).
Пример 13.6. Стиль в зависимости от имени класса
HTML5CSS 2.1IECrOpSa 5Fx
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Блок</title>
<style>
[class~="block"] h4 { color: green; }
</style>
</head>
<body>
<div>
<h4>Заголовок</h4>
</div>
</body>
</html>
В данном примере зелёный цвет текста применяется к селектору h4, если имя класса у слоя задано как block. Отметим, что аналогичный результат можно получить, если использовать конструкцию *= вместо ~=.
Дефис в значении атрибута
В именах идентификаторов и классов разрешено использовать символ дефиса (-), что позволяет создавать значащие значения атрибутов id и class. Для изменения стиля элементов, в значении которых применяется дефис, следует воспользоваться следующим синтаксисом.
[атрибут|="значение"] { Описание правил стиля }
Селектор[атрибут|="значение"] { Описание правил стиля }
Стиль применяется к элементам, у которых атрибут начинается с указанного значения или с фрагмента значения, после которого идёт дефис (пример 13.7).
Пример 13.7. Дефисы в значениях
HTML5CSS 2.1IECrOpSaFx
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Блок</title>
<style>
DIV[class|="block"] {
background: #306589; /* Цвет фона */
color: #acdb4c; /* Цвет текста */
padding: 5px; /* Поля */
}
DIV[class|="block"] A {
color: #fff; /* Цвет ссылок */
}
</style>
</head>
<body>
<div>
<h3>Термины</h3>
<div>
<ul>
<li><a href="t1.html">Буквица</a></li>
<li><a href="t2.html">Выворотка</a></li>
<li><a href="t3.html">Выключка</a></li>
<li><a href="t4.html">Интерлиньяж</a></li>
<li><a href="t5.html">Капитель</a></li>
<li><a href="t6.html">Начертание</a></li>
<li><a href="t7.html">Отбивка</a></li>
</ul>
</div>
</div>
</body>
</html>
В данном примере имя класса задано как block-menu-therm, поэтому в стилях используется конструкция |="block", поскольку значение начинается именно с этого слова и в значении встречаются дефисы.
Все перечисленные методы можно комбинировать между собой, определяя стиль для элементов, которые содержат два и более атрибута. В подобных случаях квадратные скобки идут подряд.
[атрибут1="значение1"][атрибут2="значение2"] { Описание правил стиля }
Селектор[атрибут1="значение1"][атрибут2="значение2"] { Описание правил стиля }
Вопросы для проверки
1.="text2"] { color: red; }P[class~="text2"] { color: red; } P[class*="text2"] { color: red; } P[class$="text2"] { color: red; } 3. К какому элементу будет применяться следующий стиль?
[class~="lorem"] { background: #666; }
- <p>Lorem ipsum dolor sit amet</p>
- <div>Lorem ipsum dolor sit amet</div>
- <p>Lorem ipsum dolor sit amet</p>
- <div>Lorem ipsum dolor sit amet</div>
- <p><span>Lorem ipsum dolor sit amet</span></p>
Ответы
1. INPUT[type="text"] { background: #acdacc; }
2. P[class*="text2"] { color: red; }
3. <div>Lorem ipsum dolor sit amet</div>
Селекторы атрибутов | Учебные курсы
Многие элементы HTML различаются по своему действию в зависимости от того, какие в них задействованы атрибуты. Например, <input> может создавать кнопку, текстовое поле и другие элементы формы всего лишь за счёт изменения значения атрибута type. При этом добавление стиля к селектору input поменяет оформление одновременно у всех элементов <input>. Селекторы атрибутов позволяют выбрать нужные элементы и установить для них стиль по наличию определённого атрибута или его значения.
Рассмотрим несколько наиболее популярных вариантов применения селекторов атрибутов.
Селектор [attribute]
Устанавливает стиль для элементов, у которых присутствует указанный атрибут. Значение атрибута при этом не учитывается. В качестве селектора используются квадратные скобки, внутри которых пишется произвольный атрибут.
[title] { border-bottom: 1px dotted blue; }
Здесь для всех элементов, к которым добавляется атрибут title, задаётся нижнее точечное подчёркивание синего цвета.
Чтобы сузить число элементов, перед квадратными скобками ставится имя элемента без пробелов.
a[target] { font-weight: bold; }
В данном случае выбираются только элементы <a>, к которым добавлен атрибут target с произвольным значением.
В примере 1 показано изменение стиля элемента <textarea>, когда к нему добавляется атрибут readonly.
Пример 1. Вид элемента в зависимости от его атрибута
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Селекторы атрибутов</title>
<style>
textarea {
height: 100px; /* Высота поля */
}
textarea[readonly] {
background: #f0f0f0; /* Цвет фона */
opacity: 0.8; /* Значение прозрачности */
}
</style>
</head>
<body>
<textarea>Это обычное текстовое поле, его можно редактировать.</textarea>
<textarea readonly>Это текстовое поле только для чтения, вы не можете его изменить.</textarea>
</body>
</html> В данном примере селектор textarea устанавливает стиль для всех элементов <textarea>, а селектор textarea[readonly] для элементов <textarea>, к которым добавлен атрибут readonly. Результат примера показан на рис. 1.
Рис. 1. Изменение стиля элемента в зависимости от наличия атрибута readonly
Учтите, что атрибут у элемента должен присутствовать явно. К примеру, для <input> атрибут type по умолчанию равен text, но селектор input[type] будет работать для <input type="text"> и не будет для <input>, хотя сами элементы отображаются одинаково.
Селектор [attribute="value"]
Устанавливает стиль для элемента, когда задано указанное значение атрибута. Например, для <input>, у которого значение type равно checkbox, селектор запишется следующим образом.
input[type="checkbox"] { width: 20px; height: 20px; }
Писать кавычки при этом не обязательно, но только если значение содержит латинские буквы и без пробелов. Так что input[type=checkbox] тоже работает.
Значения чувствительны к регистру, поэтому в CSS пишите их так же, как они написаны в HTML.
В примере 2 показано как установить стиль для элемента <input>, основываясь на его значении.="http://"] {
font-weight: bold; /* Жирное начертание */
}
</style>
</head>
<body>
<p><a href="page/new.html">Обычная ссылка</a> |
<a href="http://ya.ru">Ссылка на ya.ru</a> |
<a href="http://google.ru">Ссылка на google.ru</a></p>
</body>
</html>
Результат данного примера показан на рис. 3.Рис. 3. Изменение стиля ссылок
Селектор [attribute*="value"]
Позволяет выбрать элементы, у которых значение атрибута содержит указанный текст. При этом текст может быть в начале, в середине или в конце. К примеру, для выбора всех элементов, у которых класс содержит view, используется следующая запись.
[class*="view"] { color: red; }
При этом цвет изменится для элементов с классом view, view-block, viewer, overview или block-view.
В примере 4 показано изменение стиля ссылок, в атрибуте href которых встречается слово «github». Для таких ссылок мы добавляем иконку, показывающую принадлежность к GitHub.
Пример 4. Стиль для сайта GitHub
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Селекторы атрибутов</title>
<style>
a[href*="github"] { /* Ссылка содержит github */
background: url(/example/image/if_GitHub.png) no-repeat 100% 50%; /* Добавляем фоновый рисунок */
padding-right: 24px; /* Смещаем текст влево */
}
</style>
</head>
<body>
<p><a href="https://ya.ru">Яндекс</a> |
<a href="https://github.com">GitHub</a></p>
</body>
</html>Результат данного примера показан на рис. 4.
Рис. 4. Изменение стиля ссылки
Селектор [attribute$="value"]
Устанавливает стиль для элемента, когда значение атрибута оканчивается указанным текстом. К примеру, для выбора всех элементов, у которых класс завершается view, используется следующая запись.
[class$="view"] { color: red; }
При этом цвет изменится для элементов с классом view, block-view, overview, но не view-block или viewer.
Таким способом можно автоматически разделять стиль для ссылок на сайты домена ru и для ссылок на сайты других доменов вроде com, как показано в примере 5.
Пример 5. Стиль для разных доменов
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Селекторы атрибутов</title>
<style>
a[href$=".ru"] { /* Ссылка оканчивается на .ru */
background: url(/example/image/ru.png) no-repeat 0 50%; /* Добавляем фоновый рисунок */
padding-left: 18px; /* Смещаем текст вправо */
}
a[href$=".com"] { /* Ссылка оканчивается на .com */
background: url(/example/image/com.png) no-repeat 0 50%;
padding-left: 18px;
}
</style>
</head>
<body>
<p><a href="//ya.ru">Яндекс</a> |
<a href="//google.com">Google</a></p>
</body>
</html>В данном примере содержатся две ссылки, ведущие на разные домены — com и ru. При этом к каждой такой ссылке с помощью стилей добавляется своя фоновая картинка (рис. 5). Стилевые свойства будут применяться только для тех ссылок, атрибут href которых оканчивается на «.ru» или «.com». Заметьте, что добавив к имени домена косую черту (//ya.ru/) или адрес страницы (//ya.ru/search), мы изменим тем самым окончание и стиль применяться уже не будет.
Рис. 5. Добавление картинки к ссылкам
Селекторы атрибутов допустимо комбинировать между собой, чтобы выбрать элементы, содержащие два и более атрибута. К примеру, для элемента <input>, у которого есть атрибут type со значением password и атрибут required, запись будет следующей.
input[type="password"][required] { border: 1px solid red; }
Пробелы между селекторами атрибутов не ставятся, всё пишется в одну строку.
Селекторы атрибутов CSS. Описание и примеры — учебник CSS
С помощью CSS селекторов атрибутов (англ. attribute selectors) вы можете задавать стиль тем тегам, которые имеют указанные атрибуты. Пример: вы желаете присвоить определенный стиль всем фотографиям, которые имеют атрибут title
, не затрагивая все остальные изображения. Делается это просто:
img[title] {
width: auto;
height: auto;
}
Как видим, атрибут title
записан в квадратных скобках после названия img
, затем идет блок объявлений. А что если вам понадобится создать стиль только для тех изображений с атрибутом title
, которым присвоен определенный класс, скажем, .gallery
? В таком случае это записывается так:
.gallery[title] {
width: auto;
height: auto;
}
Атрибуты со значениями
Можно делать выборку элементов, у которых имеется определенное значение атрибута.="https://www.google.com"] {
color: green;
}
Выборка по концу текста
А может быть вы желаете красиво оформить все ссылки на файлы с расширением .rar
? Тогда вам понадобится описать, как выглядит окончание URL:
a[href$=".rar"] { color: #FFF; text-decoration: none; background-color: orange; padding: 5px 10px; cursor: pointer; }
Не забудьте указать после названия атрибута символ $
, который означает «заканчивается на».
Итоги
Селекторы атрибутов в CSS позволяют задавать стиль элементам веб-страницы в зависимости от наличия у них определенных атрибутов.
С помощью селекторов атрибутов можно также осуществлять выборку тех элементов, у которых имеется определенное значение атрибута.
Можно делать точную выборку элементов веб-страницы по началу или концу текста в значении атрибута.
В следующей, последней подглаве вас ждет урок, где вы сможете закрепить полученные знания и потренироваться в работе с различными CSS-селекторами.
CSS3 | Селекторы атрибутов
Селекторы атрибутов
Последнее обновление: 21.04.2016
Кроме селекторов элементов мы также можем использовать селекторы их атрибутов. Например, у нас есть на веб-странице несколько полей input, а нам
надо окрасить в красный цвет только текстовые поля. В этом случае мы как раз можем проверять значение атрибута type
: если оно имеет
значение text
, то это текстовое поле, и соответственно его надо окрасить в красный цвет. Определение стиля в этом случае выглядело бы так:
input[type="text"]{ border: 2px solid red; }
После элемента в квадратных скобках идет атрибут и его значение. То есть в данном случае мы говорим, что для текстового поля надо установить границу красного цвета 2 пикселя толщиной сплошной линией.
Например:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Селекторы атрибутов в CSS3</title> <style> input[type="text"]{ border: 2px solid red; } </style> </head> <body> <p><input type="text" /></p> <p><input type="password" /></p> <input type="submit" value="Send" /> </body> </html>
Селекторы атрибутов можно применять не только к элементам, но и классам и идентификаторам.="https://"]{ color: red; }
Если значение атрибута должно иметь в конце определенный текст, то для проверки используется символ $. Например, нам надо выбрать все изображения
в формате jpg. В этом случае мы можем проверить, оканчивается ли значение атрибута src
на текст ".jpg":
img[src$=".jpg"]{ width: 100px; }
И еще один символ "*" (звездочка) позволяет выбрать все элементы с атрибутами, которые в своем значении имеют определенный текст (не важно где - в начале, середине или конце):
a[href*="microsoft"]{ color: red; }
Данный атрибут выберет все ссылки, которые в своем адресе имеют текст "microsoft".
Укажите несколько селекторов атрибутов в CSS
Каков синтаксис для выполнения чего-то вроде:
input[name="Sex" AND value="M"]
В принципе, я хочу выбрать элемент input
, который имеет атрибут name="Sex"
, а также атрибут value="M"
:
<input type="radio" name="Sex" value="M" />
Не следует выбирать такие элементы, как следующие:
<input type="radio" name="Sex" value="F" />
css
attributes
css-selectors Поделиться Источник John 09 сентября 2012 в 16:20
5 ответов
- несколько селекторов CSS
Я хочу нацелиться на элемент HTML, когда BOTH идентификаторы и селекторы классов совпадают. Т. е. если набор полей имеет id 'id1' AND класса 'collapsed', то применяется некоторое правило CSS (чтобы его высота была уменьшена до нуля). CSS 2.1 документы предполагают, что эту задачу могут выполнять...
- Как использовать несколько селекторов атрибутов, но для / с определенными значениями атрибутов?
Я использую jQuery, и у меня есть следующий код HTML: <a href=/link data-a='{one:sample1,two:sample2}' data-b=true>Title</a> Я хотел бы найти приведенную выше ссылку, используя несколько селекторов атрибутов , но для/с конкретными значениями, содержащимися в атрибутах data-* . То есть...
484
Просто input[name=Sex][value=M]
было бы неплохо. И это на самом деле хорошо описано в стандартном документе :
Несколько селекторов атрибутов можно использовать для ссылки на несколько атрибутов элемента или даже несколько раз на один и тот же атрибут.
Здесь селектор соответствует всем элементам SPAN, чей атрибут "hello" имеет точное значение "Cleveland" и чей атрибут "goodbye" имеет точное значение "Columbus":
span[hello="Cleveland"][goodbye="Columbus"] { color: blue; }
В качестве примечания, использование кавычек вокруг значения атрибута требуется только в том случае, если это значение не является допустимым идентификатором.
JSFiddle Демо
Поделиться raina77ow 09 сентября 2012 в 16:22
77
Для объединения это:
input[name="Sex"][value="M"] {}
И для того, чтобы взять союз, это:
input[name="Sex"], input[value="M"] {}
Поделиться Yogesh Khater 20 февраля 2015 в 10:15
32
Объедините селекторы атрибутов:
input[name="Sex"][value="M"]
Поделиться Dennis 09 сентября 2012 в 16:22
4
Просто добавлю, что между селектором и открывающей скобкой не должно быть места.
td[someclass]
будет работать. Но
td [someclass]
не будет.
Поделиться Jean-Philippe Martin 10 августа 2017 в 20:22
-7
[class*="test"],[class="second"] {
background: #ffff00;
}
Поделиться Eli 21 июня 2017 в 05:27
Похожие вопросы:
Regex для селекторов атрибутов данных css
Пытаюсь постобработать некоторые CSS здесь и нуждаюсь в regex, чтобы выбрать селекторы атрибутов данных в CSS. Ему нужно будет выбрать следующие селекторы (только селектор, но полностью):...
CSS: Несколько Селекторов Атрибутов
Я хотел бы стилизовать входные данные формы типа email и password, но не что-либо еще. Я представлял себе что-то вроде следующего: input[type=email][type=password] { .... } Однако то, как работают...
Могу ли я определить стиль в CSS для ввода с помощью селекторов атрибутов и класса также?
Могу ли я определить стиль в CSS для ввода с помощью селекторов атрибутов и класса также? input[type=text].focus Выше css не работает. Но есть ли способ достичь этого?
несколько селекторов CSS
Я хочу нацелиться на элемент HTML, когда BOTH идентификаторы и селекторы классов совпадают. Т. е. если набор полей имеет id 'id1' AND класса 'collapsed', то применяется некоторое правило CSS (чтобы...
Как использовать несколько селекторов атрибутов, но для / с определенными значениями атрибутов?
Я использую jQuery, и у меня есть следующий код HTML: <a href=/link data-a='{one:sample1,two:sample2}' data-b=true>Title</a> Я хотел бы найти приведенную выше ссылку, используя несколько...
CSS производительность между селекторами классов и атрибутов
Мне интересно, есть ли проблема с производительностью при использовании селекторов атрибутов вместо селекторов классов. div.test {} div[test] {} P.S. : Меня интересует только производительность CSS,...
Использование селекторов атрибутов CSS для таргетинга src фонового изображения
Я использую атрибут background-image для назначения изображений диапазону div на моем сайте. Однако с атрибутами background-image мне также нужно назначить background-size , чтобы он выглядел...
Невозможно настроить таргетинг xlink:href с помощью селекторов атрибутов
Я пытаюсь избежать необходимости <use class=myicon xlink:href=myicon /> , просто ориентируясь на значение атрибута xlink:href при стилизации моего SVGs. Ни один из следующих селекторов,...
CSS селекторы атрибутов имеют приоритет над обычными селекторами классов CSS
Первоначально я заметил эту проблему при работе с CSS в файле SVG и подумал, что это ошибка рендеринга, но после попытки сделать это в HTML возникла та же ситуация. Возьмите следующий код: .example...
Как добавить несколько атрибутов в InstallData Magento 2
Пожалуйста, укажите, как добавить несколько атрибутов в один скрипт InstallData
Селекторы атрибутов в CSS Каскадные таблицы стилей...
Привет, сегодня поговорим про селекторы атрибутов в css, обещаю рассказать все что знаю. Для того чтобы лучше понимать что такое селекторы атрибутов в css , настоятельно рекомендую прочитать все из категории Каскадные таблицы стилей CSS/ CSS3
Многие теги различаются по своему действию в зависимости от того, какие в них используются атрибуты. Например, тег<input> может создавать кнопку, текстовое поле и другие элементы формы всего лишь за счет изменения значения атрибута type. При этом добавление правил стиля к селектору INPUT применит стиль одновременно ко всем созданным с помощью этого тега элементам. Чтобы гибко управлять стилем подобных элементов, в CSS введены селекторы атрибутов. Они позволяют установить стиль по присутствию определенного атрибута тега или его значения.
Рассмотрим несколько типичных вариантов применения таких селекторов.
Простой селектор атрибута
Устанавливает стиль для элемента, если задан специфичный атрибут тега. Его значение в данном случае не важно. Синтаксис применения такого селектора следующий.
[атрибут] { Описание правил стиля }
Селектор[атрибут] { Описание правил стиля }
Стиль применяется к тем тегам, внутри которых добавлен указанный атрибут. Пробел между именем селектора и квадратными скобками не допускается.
В примере 13.1 показано изменение стиля тега <q>, в том случае, если к нему добавлен атрибут title.
Пример 13.1. Вид элемента в зависимости от его атрибута
HTML5CSS 2.1IECrOpSaFx
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Селекторы атрибутов</title>
<style>
Q {
font-style: italic; /* Курсивное начертание */
quotes: "\00AB" "\00BB"; /* Меняем вид кавычек в цитате */
}
Q[title] {
color: maroon; /* Цвет текста */
}
</style>
</head>
<body>
<p>Продолжая известный закон Мерфи, который гласит: <q>Если неприятность
может случиться, то она обязательно случится</q>, можем ввести свое наблюдение:
<q title="Из законов Фергюссона-Мержевича">После того, как веб-страница
будет корректно отображаться в одном браузере, выяснится,
что она неправильно показывается в другом</q>.</p>
</body>
</html>
Результат примера показан на рис. 13.1.
Рис. 13.1. Изменение стиля элемента в зависимости от применения атрибута title
В данном примере меняется цвет текста внутри контейнера <q>, когда к нему добавляется title. Обратите внимание, что для селектора Q[title] нет нужды повторять стилевые свойства, поскольку они наследуются от селектора Q.
Атрибут со значением
Устанавливает стиль для элемента в том случае, если задано определенное значение специфичного атрибута. Синтаксис применения следующий.
[атрибут="значение"] { Описание правил стиля }
Селектор[атрибут="значение"] { Описание правил стиля }
В первом случае стиль применяется ко всем тегам, которые содержат указанное значение. А во втором — только к определенным селекторам.
В примере 13.2 показано изменение стиля ссылки в том случае, если тег <a> содержит атрибут target со значением_blank. При этом ссылка будет открываться в новом окне и чтобы показать это, с помощью стилей добавляем небольшой рисунок перед текстом ссылки.
Пример 13.2. Стиль для открытия ссылок в новом окне
HTML5CSS 2.1IECrOpSaFx
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Селекторы атрибутов</title>
<style>
A[target="_blank"] {
background: url(images/blank.png) 0 6px no-repeat; /* Параметры фонового рисунка */
padding-left: 15px; /* Смещаем текст вправо */
}
</style>
</head>
<body>
<p><a href="1.html">Обычная ссылка</a> |
<a href="link2" target="_blank">Ссылка в новом окне</a></p>
</body>
</html>
Результат примера показан ниже (рис. 13.2).
Рис. 13.2. Изменение стиля элемента в зависимости от значения target
В данном примере рисунок к ссылке добавляется с помощью свойства background . Об этом говорит сайт https://intellect.icu . В его функции входит создание повторяющейся фоновой картинки, но повторение фона можно отменить через значение no-repeat, что в итоге даст единственное изображение.="значение"] { Описание правил стиля }
В первом случае стиль применяется ко всем элементам, у которых значение атрибута начинаются с указанного текста. А во втором — только к определенным селекторам. Использование кавычек не обязательно, но только если значение содержит латинские буквы и без пробелов.
Предположим, что на сайте требуется разделить стиль обычных и внешних ссылок — ссылки, которые ведут на другие сайты. Чтобы не вводить в тег <a> новый класс , воспользуемся селекторами атрибутов. Внешние ссылки характеризуются добавлением к адресу протокола, например, для доступа к гипертекстовым документам используется протокол HTTP. Поэтому внешние ссылки начинаются с ключевого слова http://, его и добавляем к селектору A, как показано в примере 13.3.
Пример 13.3. Изменение стиля внешней ссылки
HTML5CSS 2.1IECrOpSaFx
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Селекторы атрибутов</title>
<style>
A[href^="http://"] {
font-weight: bold /* Жирное начертание */
}
</style>
</head>
<body>
<p><a href="1.html">Обычная ссылка</a> |
<a href="http://htmlbook.ru" target="_blank">Внешняя
ссылка на сайт htmlbook.ru</a></p>
</body>
</html>
Результат примера показан ниже (рис. 13.3).
Рис. 13.3. Изменение стиля для внешних ссылок
В данном примере внешние ссылки выделяются жирным начертанием. Также можно воспользоваться показанным в примере 13.2 приемом и добавлять к ссылке небольшое изображение, которое будет сообщать, что ссылка ведет на другой сайт.
Значение атрибута оканчивается определенным текстом
Устанавливает стиль для элемента в том случае, если значение атрибута оканчивается указанным текстом. Синтаксис применения следующий.
[атрибут$="значение"] { Описание правил стиля }
Селектор[атрибут$="значение"] { Описание правил стиля }
В первом случае стиль применяется ко всем элементам у которых значение атрибута завершается заданным текстом. А во втором — только к определенным селекторам.
Таким способом можно автоматически разделять стиль для ссылок на сайты домена ru и для ссылок на сайты других доменов вроде com, как показано в примере 13.4.
Пример 13.4. Стиль для разных доменов
HTML5CSS 2.1IECrOpSaFx
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Селекторы атрибутов</title>
<style>
A[href$=".ru"] { /* Если ссылка заканчивается на .ru */
background: url(images/ru.png) no-repeat 0 6px; /* Добавляем фоновый рисунок */
padding-left: 12px; /* Смещаем текст вправо */
}
A[href$=".com"] { /* Если ссылка заканчивается на .com */
background: url(images/com.png) no-repeat 0 6px;
padding-left: 12px;
}
</style>
</head>
<body>
<p><a href="http://www.yandex.com">Yandex.Com</a> |
<a href="http://www.yandex.ru">Yandex.Ru</a></p>
</body>
</html>
В данном примере содержатся две ссылки, ведущие на разные домены — com и ru. При этом к каждой такой ссылке с помощью стилей добавляется своя фоновая картинка (рис. 13.4). Стилевые свойства будут применяться только для тех ссылок, атрибут href которых оканчивается на «.ru» или «.com». Заметьте, что добавив к имени домена слэш (http://www.yandex.ru/) или адрес страницы (http://www.yandex.ru/fun.html), мы изменим тем самым окончание и стиль применяться уже не будет. В этом случае лучше воспользоваться селектором, у которого заданный текст встречается в любом месте значения атрибута.
Рис. 13.4. Добавление картинки к ссылкам
Значение атрибута содержит указанный текст
Возможны варианты, когда стиль следует применить к тегу с определенным атрибутом, при этом частью его значения является некоторый текст. При этом точно не известно, в каком месте значения включен данный текст — в начале, середине или конце. В подобном случае следует использовать такой синтаксис.
[атрибут*="значение"] { Описание правил стиля }
Селектор[атрибут*="значение"] { Описание правил стиля }
В примере 13.5 показано изменение стиля ссылок, в атрибуте href которых встречается слово «htmlbook».
Пример 13.5. Стиль для разных сайтов
HTML5CSS 2.1IECrOpSaFx
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Селекторы атрибутов</title>
<style>
[href*="htmlbook"] {
background: yellow; /* Желтый цвет фона */
}
</style>
</head>
<body>
<p><a href="http://www.htmlbook.ru/html/">Теги HTML</a> |
<a href="http://stepbystep.htmlbook.ru">Шаг за шагом</a> |
<a href="http://webimg.ru">Графика для Веб</a></p>
</body>
</html>
Результат данного примера показан на рис. 13.5.
Рис. 13.5. Изменение стиля для ссылок, в адресе которых встречается «htmlbook»
Одно из нескольких значений атрибута
Некоторые значения атрибутов могут перечисляться через пробел, например имена классов . Чтобы задать стиль при наличии в списке требуемого значения применяется следующий синтаксис.
[атрибут~="значение"] { Описание правил стиля }
Селектор[атрибут~="значение"] { Описание правил стиля }
Стиль применяется в том случае, если у атрибута имеется указанное значение или оно входит в список значений, разделяемых пробелом (пример 13.6).
Пример 13.6. Стиль в зависимости от имени класса
HTML5CSS 2.1IECrOpSa 5Fx
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Блок</title>
<style>
[class~="block"] h4 { color: green; }
</style>
</head>
<body>
<div class="block tag">
<h4>Заголовок</h4>
</div>
</body>
</html>
В данном примере зеленый цвет текста применяется к селектору h4, если имя класса у слоя задано как block. Отметим, что аналогичный результат можно получить, если использовать конструкцию *= вместо ~=.
Дефис в значении атрибута
В именах идентификаторов и классов разрешено использовать символ дефиса (-), что позволяет создавать значащие значения атрибутов id и class. Для изменения стиля элементов, в значении которых применяется дефис, следует воспользоваться следующим синтаксисом.
[атрибут|="значение"] { Описание правил стиля }
Селектор[атрибут|="значение"] { Описание правил стиля }
Стиль применяется к элементам, у которых атрибут начинается с указанного значения или с фрагмента значения, после которого идет дефис (пример 13.7).
Пример 13.7. Дефисы в значениях
HTML5CSS 2.1IECrOpSaFx
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Блок</title>
<style>
DIV[class|="block"] {
background: #306589; /* Цвет фона */
color: #acdb4c; /* Цвет текста */
padding: 5px; /* Поля */
}
DIV[class|="block"] A {
color: #fff; /* Цвет ссылок */
}
</style>
</head>
<body>
<div class="block-menu-therm">
<h3>Термины</h3>
<div class="content">
<ul class="menu">
<li><a href="t1.html">Буквица</a></li>
<li><a href="t2.html">Выворотка</a></li>
<li><a href="t3.html">Выключка</a></li>
<li><a href="t4.html">Интерлиньяж</a></li>
<li><a href="t5.html">Капитель</a></li>
<li><a href="t6.html">Начертание</a></li>
<li><a href="t7.html">Отбивка</a></li>
</ul>
</div>
</div>
</body>
</html>
В данном примере имя класса задано как block-menu-therm, поэтому в стилях используется конструкция |="block", поскольку значение начинается именно с этого слова и в значении встречаются дефисы.
Все перечисленные методы можно комбинировать между собой, определяя стиль для элементов, которые содержат два и более атрибута. В подобных случаях квадратные скобки идут подряд.
[атрибут1="значение1"][атрибут2="значение2"] { Описание правил стиля }
Селектор[атрибут1="значение1"][атрибут2="значение2"] { Описание правил стиля }
Вопросы для проверки
1.="text2"] { color: red; }
3. К какому элементу будет применяться следующий стиль? [class~="lorem"] { background: #666; } 1. INPUT[type="text"] { background: #acdacc; } 2. P[class*="text2"] { color: red; } 3. <div>Lorem ipsum dolor sit amet</div> Понравилась статья про селекторы атрибутов в css? Откомментируйте её Надеюсь, что теперь ты понял что такое селекторы атрибутов в css
и для чего все это нужно, а если не понял, или есть замечания,
то нестесняся пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории
Каскадные таблицы стилей CSS/ CSS3 Ответы на вопросы для самопроверки пишите в комментариях, мы проверим, или же задавайте свой вопрос по данной теме. Селектор Ответы
- CSS: каскадные таблицы стилей
Заголовок] {
цвет: фиолетовый;
}
a [href = "https://example.org"] {
цвет: зеленый;
}
a [href * = "example"] {
размер шрифта: 2em;
}
a [href $ = ". org"] {
стиль шрифта: курсив;
}
a [class ~ = "logo"] {
отступ: 2 пикселя;
}
-
[ attr ]
- Представляет элементы с именем атрибута attr .
-
[ attr = value ]
- Представляет элементы с именем атрибута attr , значение которого точно равно значению .
-
[ attr ~ = значение ]
- Представляет элементы с именем атрибута attr , значение которого представляет собой список слов, разделенных пробелами, одно из которых точно соответствует значению .
-
[ attr | = значение ]
- Представляет элементы с именем атрибута attr , значение которого может быть точно , значением или может начинаться со значения , сразу за которым следует дефис,
–
(U + 002D).= значение ]- Представляет элементы с именем атрибута attr , значение которого предваряется (предваряется) значением .
[ attr $ = значение ]
- Представляет элементы с именем атрибута attr , значение которого имеет суффикс (за которым следует) значение .
[ attr * = значение ]
- Представляет элементы с именем атрибута attr , значение которого содержит по крайней мере одно вхождение значения в строке.
[ attr operator value i]
- Добавление
i
(илиI
) перед закрывающей скобкой приводит к тому, что значение сравнивается без учета регистра (для символов в диапазоне ASCII).[ attr operator value s]
- Добавление
s
(илиS
) перед закрывающей скобкой приводит к тому, что значение сравнивается с учетом регистра (для символов в диапазоне ASCII).= "https"] [href $ = ". org"] { цвет: зеленый; }HTML
Результат
Языки
CSS
div [lang] { font-weight: жирный; } div: not ([lang]) { стиль шрифта: курсив; } div [lang ~ = "en-us"] { цвет синий; } div [lang = "pt"] { цвет: зеленый; } div [lang | = "zh"] { красный цвет; } div [data-lang = "zh-TW"] { цвет: фиолетовый; }
HTML
Привет, мир!Olá Mundo!您好!您好!您好!Результат
Упорядоченные списки HTML
Спецификация HTML требует, чтобы атрибут
типа
сопоставлялся без учета регистра, поскольку он в основном используется в элементетипа
объекта упорядоченный список не работает без модификатора с учетом регистра.CSS
ol [type = "a"] { список-стиль-тип: нижняя альфа; фон: красный; } ol [type = "a" s] { список-стиль-тип: нижняя альфа; фон: салатовый; } ol [type = "A" s] { тип-стиль-список: верхний-альфа; фон: салатовый; }
HTML
- Пример списка
Результат
таблицы BCD загружаются только в браузере
Селекторы атрибутов — изучение веб-разработки
Как вы знаете из своего изучения HTML, элементы могут иметь атрибуты, дающие дополнительную информацию о размеченном элементе.В CSS вы можете использовать селекторы атрибутов для нацеливания элементов с определенными атрибутами. Этот урок покажет вам, как использовать эти очень полезные селекторы.
Эти селекторы позволяют выбрать элемент только на основании наличия атрибута (например,
href
) или на различных совпадениях со значением атрибута.Селектор Пример Описание [ атрибут ]
a [название]
Соответствует элементам с атрибутом attr (имя которого указано в квадратных скобках). [ attr = значение ]
a [href = "https://example.com"]
Соответствует элементам с атрибутом attr , значение которого точно равно значению — строке внутри кавычек. [ attr ~ = значение ]
p [class ~ = "special"]
Сопоставляет элементы с атрибутом attr , значение которого точно равно значению или содержит значение в его (разделенном пробелом) списке значений.[ attr | = значение ]
div [lang | = "zh"]
Соответствует элементам с атрибутом attr , значение которого точно соответствует значению или начинается со значения , сразу за которым следует дефис. В приведенном ниже примере вы можете увидеть, как используются эти селекторы.
- Используя
li [class]
, мы можем сопоставить любой элемент списка с атрибутом класса.Это соответствует всем элементам списка, кроме первого. -
li [class = "a"]
соответствует селектору с классомa
, но не селектору с классомa
с другим разделенным пробелом классом как частью значения. Он выбирает второй элемент списка. -
li [class ~ = "a"]
будет соответствовать классуa
, но также и значению, которое содержит классa
как часть списка, разделенного пробелами. Он выбирает второй и третий элементы списка.= «box-«]Соответствует элементам с атрибутом attr (имя которого указано в квадратных скобках), значение которого начинается со значения . [ attr $ = значение ]
li [class $ = "- box"]
Соответствует элементам с атрибутом attr , значение которого заканчивается значением . [ attr * = значение ]
li [class * = "box"]
Соответствует элементам с атрибутом attr , значение которого содержит значение в любом месте строки.= «a»] соответствует любому значению атрибута, которое начинается с и
, поэтому соответствует первым двум элементам списка.li [class $ = "a"]
соответствует любому значению атрибута, которое заканчивается наa
, поэтому соответствует первому и третьему элементу списка.li [class * = "a"]
соответствует любому значению атрибута, гдеa
появляется в любом месте строки, поэтому соответствует всем элементам нашего списка.Если вы хотите сопоставить значения атрибутов без учета регистра, вы можете использовать значение
i
перед закрывающей скобкой.Этот флаг сообщает браузеру, что символы ASCII должны совпадать без учета регистра. Без флага значения будут сопоставляться в соответствии с чувствительностью к регистру языка документа — в случае HTML это будет чувствительно к регистру.В приведенном ниже примере первый селектор будет соответствовать значению, которое начинается с
a
— он соответствует только первому элементу списка, потому что два других элемента списка начинаются с верхнего регистра A. Второй селектор использует флаг без учета регистра, и поэтому соответствует всем элементам списка.Примечание : существует также более новое значение
s
, которое будет принудительно выполнять сопоставление с учетом регистра в контекстах, где сопоставление обычно не учитывает регистр, однако это менее хорошо поддерживается в браузерах и не очень полезно в контексте HTML. .Селектор атрибутов CSS
Стили для HTML-элементов с определенными атрибутами
Можно стилизовать элементы HTML, которые имеют определенные атрибуты или значения атрибутов.
CSS [атрибут] Селектор
Селектор
[атрибут]
используется для выбора элементов с указанным атрибут.В следующем примере выбираются все элементы с целевым атрибутом:
CSS [attribute = «value»] Селектор
Селектор
[attribute = "value"]
используется для выбора элементов с указанным атрибут и значение.В следующем примере выбираются все элементы с атрибутом target = «_ blank»:
CSS [attribute ~ = «value»] Селектор
Селектор
[attribute ~ = "value"]
используется для выбора элементов с атрибутом значение, содержащее указанное слово.В следующем примере выбираются все элементы с атрибутом title, который содержит список слов, разделенных пробелами, одно из которых — «цветок»:
В приведенном выше примере будут найдены элементы с title = «flower», title = «summer». flower «и title =» flower new «, но не title =» my-flower «или title =» flowers «.
CSS [атрибут | = «значение»] Селектор
Селектор
[attribute | = "value"]
используется для выбора элементов с указанным атрибутом, начиная с указанного значения.= «value»] Селектор используется для выбора элементов, атрибут значение начинается с указанного значения.В следующем примере выбираются все элементы со значением атрибута класса, начинающимся с «top»:
Примечание: Значение не обязательно должно быть целым словом!
CSS [attribute $ = «value»] Селектор
Селектор
[attribute $ = "value"]
используется для выбора элементов, атрибут значение заканчивается указанным значением.В следующем примере выбираются все элементы со значением атрибута класса, которое заканчивается на «test»:
Примечание: Значение не обязательно должно быть целым словом!
CSS [атрибут * = «значение»] Селектор
Селектор
[attribute * = "value"]
используется для выбора элементов, атрибут value содержит указанное значение.В следующем примере выбираются все элементы со значением атрибута класса, которое содержит «te»:
Примечание: Значение не обязательно должно быть целым словом!
Формы для укладки
Селекторы атрибутов могут быть полезны для стилизации форм без класса или ID:
Пример
ввод [тип = «текст»] {
ширина: 150 пикселей;
дисплей: блок;
нижнее поле: 10 пикселей;
цвет фона: желтый;
}input [type = «button»] {
Попробуй сам »
ширина: 120 пикселей;
поле слева: 35 пикселей;
дисплей: блочный;
}Совет: Посетите наше руководство по CSS Forms Tutorial, чтобы узнать больше примеров того, как стилизовать формы с помощью CSS.
Проверьте себя упражнениями!
Все селекторы атрибутов CSS
Селектор Пример Описание примера [ атрибут ] [цель] Выбирает все элементы с целевым атрибутом [ атрибут = значение ] [target = _blank] Выбирает все элементы с target = «_ blank» [ атрибут ~ = значение ] [название ~ = цветок] Выбирает все элементы с атрибутом title, содержащим слово «цветок». = «https»] Выбирает каждый элемент , значение атрибута href которого начинается с https. [ атрибут $ = значение ] а [href $ = «.pdf »] Выбирает каждый элемент , значение атрибута href которого заканчивается на «.pdf» [ атрибут * = значение ] a [href * = «w3schools»] Выбирает каждый элемент , значение атрибута href которого содержит подстроку «w3schools».
CSS | Селектор атрибутов — GeeksforGeeks
Селектор атрибутов CSS используется для выбора элемента с определенным атрибутом или значением атрибута.Это отличный способ стилизовать элементы HTML, сгруппировав их на основе определенных атрибутов, и селектор атрибутов выберет эти элементы с похожими атрибутами.
Существует несколько типов селекторов атрибутов, которые обсуждаются ниже:- [атрибут] Селектор: Этот тип селектора атрибутов используется для выбора всех элементов, которые имеют указанный атрибут, и применяет свойство CSS к этому атрибуту. Например, селектор [класс] выберет все элементы с атрибутом стиля.
Пример:
<
html
>
000
title
> Селектор атрибутов
title
>
<
style
>
[class] {
center;
Цвет: зеленый;
}
.gfg {
font-size: 40px;
font-weight: жирный;
нижнее поле: -20 пикселей;
}
стиль
>
головка
>
<
div
class
=
"gfg"
> GeeksforGeeks
div
>
geeks "
> Портал информатики для вундеркиндов
p
>
body
>
html>
Вывод:
Этот селектор используется для ограничения некоторых конкретных эл. элементов, то необходимо указать этот элемент перед селектором атрибутов.
Пример:<
html
>
title
> Селектор атрибутов
title
>
<
style
>
div [style] {
center;
цвет: зеленый;
font-size: 40px;
font-weight: жирный;
нижнее поле: -20 пикселей;
}
p {
выравнивание текста: по центру;
font-size: 17px;
}
стиль
>
головка
>
<
div
style
=
«цвет: зеленый»
> GeeksforGeeks
div
>
Portal Science
<9000 для вундеркиндов
p
>
корпус
>
html
>
С помощью оператора запятой можно выбрать несколько элементов.
h3, p [style] { цвет фона: # 00b93e; }
- [attribute = «value»] Селектор: Этот селектор используется для выбора всех элементов, атрибут которых имеет значение, точно такое же, как указанное значение.
Пример:
<
html
>
000
title
> Селектор атрибутов
title
>
<
style
>
[title = "gfg"] {
цвет:
цвет:
цвет ;
font-size: 40px;
font-weight: жирный;
выравнивание текста: по центру;
}
[title = "geeks"] {
font-size: 17px;
выравнивание текста: по центру;
margin-top: 0px;
}
стиль
>
головка
>
<
div
title
=
"gfg"
> GeeksforGeeks
div
>
geeks "
> Портал информатики для вундеркиндов
p
>
body
>
html>
Выход:
- [атрибут ~ = "значение"] Селектор: Этот селектор используется для выбора всех элементов, значение атрибута которых представляет собой список значений, разделенных пробелами, одно из которых точно равно указанному значению.
Пример:
<
html
>
000
title
> Селектор атрибутов
title
>
<
style
>
[class ~ = "gfg"] {
0005 color:
0005 color зеленый;
font-size: 40px;
font-weight: жирный;
выравнивание текста: по центру;
}
[class ~ = "geeks"] {
font-size: 17px;
выравнивание текста: по центру;
margin-top: 0px;
}
стиль
>
головка
>
<
div
класс
=
«gfg»
> GeeksforGeeks
div
>
geeks "
> Портал информатики для вундеркиндов
div
>
<
div
class
=
" geeks=
GeeksforGeeks - платформа кодированияdiv
>
body
>
html
>
3 Выходное значение:
атрибут ”] Селектор:
Этот селектор используется для выбора всех элементов, атрибут которых имеет разделенный дефисом список значений, начинающийся с указанного значения.Значение должно быть целым словом либо отдельно, либо с дефисом.Пример:
<
html
>
000
title
> Селектор атрибутов
title
>
<
style
>
[class | = "gfg"] {
0005 color:
0005 color зеленый;
font-size: 40px;
font-weight: жирный;
выравнивание текста: по центру;
}
[class | = "geeks"] {
font-size: 17px;
выравнивание текста: по центру;
margin-top: 0px;
}
стиль
>
головка
>
<
div
класс
=
«gfg»
> GeeksforGeeks
div
>
geeks-ide "
> Портал по информатике для вундеркиндов
div
>
<
div
ide
=
=" geeks-ide
=
> GeeksforGeeks - платформа кодирования
div 9 0008
>
body
>
html
>
11: Выход value ”] Селектор: Этот селектор используется для выбора всех элементов, значение атрибута которых начинается с указанного значения. = "geeks"] {font-size: 17px;
выравнивание текста: по центру;
margin-top: 0px;
}
стиль
>
головка
>
платформа кодирования<
div
класс
=
«gfg»
> GeeksforGeeks
div
>
geeks "
> Портал информатики для гиков
div
>
<
div
class
=
eks" geeksdiv
>
body
>
html
>
3 Выходное значение:
3 Выход:
атрибут ”] Селектор:
Этот селектор используется для выбора всех элементов, значение атрибута которых заканчивается указанным значением.Значение не обязательно должно быть целым словом.Пример:
<
html
>
000
title
> Селектор атрибутов
title
>
<
style
>
[class $ = "gfg"] {
0005 color:
0005 color зеленый;
font-size: 40px;
font-weight: жирный;
выравнивание текста: по центру;
}
[class $ = "geeks"] {
font-size: 17px;
выравнивание текста: по центру;
margin-top: 0px;
}
стиль
>
головка
>
000e<
div
класс
=
«gfg»
> GeeksforGeeks
div
>
geeksforgeeks "
> Портал информатики для вундеркиндов
div
>
<
div
000" geforks
000> платформа кодирования
div 90 008
>
body
>
html
>
1: Выход value ”] Селектор: Этот селектор выбирает все элементы, значение атрибута которых содержит указанное значение, присутствующее где угодно.Значение не обязательно должно быть целым словом.Пример:
<
html
>
000
title
> Селектор атрибутов
title
>
<
style
>
[class * = "gfg"] {
0005 color зеленый;
font-size: 40px;
font-weight: жирный;
выравнивание текста: по центру;
}
[class * = "for"] {
font-size: 17px;
выравнивание текста: по центру;
margin-top: 0px;
}
стиль
>
головка
>
<
div
класс
=
«gfg»
> GeeksforGeeks
div
>
geeksforgeeks "
> Портал информатики для вундеркиндов
div
>
<
div
000"
для класса
> GeeksforGeeks - платформа кодирования
di v
>
корпус
>
html
>
Считыватель! Не прекращайте учиться сейчас.Освойте все важные концепции конкурентного конкурентного программирования с помощью веб-дизайна для начинающих | HTML курс.
Работа с селекторами атрибутов CSS
Селектор атрибутов выбирает элементы HTML, которые имеют определенный атрибут или атрибут с указанным значением.
Селекторы атрибутов
Селекторы атрибутов CSS предоставляют простой и эффективный способ применения стилей к элементам HTML на основе наличия определенного атрибута или значения атрибута.
Вы можете создать селектор атрибутов, поместив атрибут - необязательно со значением - в пару квадратных скобок. Вы также можете поместить перед ним селектор типа элемента.
В следующих разделах описаны наиболее распространенные селекторы атрибутов.
CSS [атрибут] Селектор
Это простейшая форма селектора атрибутов, которая применяет правила стиля к элементу, если данный атрибут существует.Например, мы можем стилизовать все элементы с атрибутом
title
, используя следующие правила стиля:Селектор
[title]
в приведенном выше примере соответствует всем элементам, имеющим атрибутtitle
.Вы также можете ограничить этот выбор конкретным элементом HTML, поместив селектор атрибутов после селектора типа элемента, например:
abbr [название] { красный цвет; }
Селектор
abbr [title]
соответствует толькоtitle
, поэтому он соответствует сокращению, но не элементам привязки, имеющим атрибутtitle
.CSS [attribute = "value"] Селектор
Вы можете использовать оператор
=
, чтобы селектор атрибутов соответствовал любому элементу, значение атрибута которого точно равно заданному значению:input [type = "submit"] { граница: сплошной зеленый 1px; }
Селектор в приведенном выше примере соответствует всем элементам
типа
со значением, равнымsubmit
.CSS [attribute ~ = "value"] Селектор
Вы можете использовать оператор
~ =
, чтобы селектор атрибутов соответствовал любому элементу, значение атрибута которого представляет собой список из значений , разделенных пробелами (например,class = "alert warning"
), одно из которых в точности равно указанное значение:[class ~ = "warning"] { цвет: #fff; фон: красный; }
Этот селектор соответствует любому элементу HTML с атрибутом
класса
, который содержит значения, разделенные пробелами, одним из которых являетсяпредупреждение
.Например, он соответствует элементам, имеющим значения классапредупреждение
,предупреждение предупреждение
и т. Д.CSS [атрибут | = "значение"] Селектор
Вы можете использовать оператор
| =
, чтобы селектор атрибутов соответствовал любому элементу, атрибут которого имеет разделенный дефисами список значений , начинающийся с указанного значения:[lang | = en] { цвет: #fff; фон: синий; }
Селектор в приведенном выше примере соответствует всем элементам с атрибутом
lang
, содержащим значение, начинающееся си
, независимо от того, следует ли за этим значением дефис и другие символы.= "http: //"] { фон: url ("external.png") 100% 50% без повтора; отступ справа: 15 пикселей; }Селектор в приведенном выше примере нацелен на все внешние ссылки и добавит небольшой значок, указывающий, что они откроются в новой вкладке или окне.
CSS [attribute $ = "value"] Селектор
Аналогичным образом можно использовать оператор
$ =
для выбора всех элементов, значение атрибута которых заканчивается на , указанное значение.Это не обязательно должно быть целое слово.a [href $ = ". Pdf"] { фон: url ("pdf.png") 0 50% без повтора; отступ слева: 20 пикселей; }
Селектор в приведенном выше примере выбирает все элементы
CSS [атрибут * = "значение"] Селектор
Вы можете использовать оператор
* =
, чтобы селектор атрибутов соответствовал всем элементам, значение атрибута которых содержит указанное значение.[class * = "warning"] { цвет: #fff; фон: красный; }
Этот селектор в приведенном выше примере соответствует всем элементам HTML с атрибутом
класса
, значения которого содержатпредупреждение
.Например, он соответствует элементам, имеющим значения классаwarning
,alert warning
,alert-warning
илиalert_warning
и т. Д.Стилизация форм с селекторами атрибутов
Селекторы атрибутов особенно полезны для стилизации форм без
class
илиid
:input [type = "text"], input [type = "password"] { ширина: 150 пикселей; дисплей: блок; нижнее поле: 10 пикселей; фон: желтый; } input [type = "submit"] { отступ: 2px 10px; граница: 1px solid # 804040; фон: # ff8040; }
Селекторы атрибутов
Селекторы атрибутов
Web Review
Август 2000 г.В нашей продолжающейся серии статей о селекторах CSS2 мы рассмотрели ряд тем, от универсального селектора до селектора смежных братьев и сестер, а в последнее время - множество псевдоэлементов.Какими бы увлекательными они ни были, во многих смыслах они были лишь разминкой для темы последних статей серии: селекторов атрибутов. Начиная с этой статьи, я завершу серию селекторов обзором из трех статей о селекторах атрибутов и удивительных способах, которыми они могут помочь вам стилизовать ваши веб-страницы.
Выбор простого атрибута
Синтаксис для селекторов атрибутов достаточно прост, но он не похож ни на что в CSS1. Селектор атрибута включает использование селектора элемента или универсального селектора, за которым следует атрибут, заключенный в квадратные скобки.Например, предположим, что мы хотим выбрать все привязки с атрибутом
href
. Значениеhref
не имеет значения, мы просто выбираем элементы привязки, у которых присутствует этот атрибут. Итак, пишем:A [href] {color: green;}
Это правило устанавливает для любую гиперссылку зеленого цвета. Преимущество в том, что показанное правило выберет все гиперссылки, посещенные или нет. Другими словами, следующие два селектора эквивалентны:
A [href] A: ссылка, A: посетил
Это всего лишь один из способов использования простого селектора атрибутов.Есть более практические цели. Допустим, мы хотим установить цвет границы для всех изображений, которые являются частью гиперссылки и имеют какую-либо границу. Решаем, что хорошим цветом будет синий (все-таки традиция). Итак, чтобы установить этот цвет для тех изображений, у которых есть граница, мы объявляем:
A [href] IMG [border] {border-color: blue;}
Как насчет других применений? Вы можете использовать селекторы атрибутов для диагностики. Например, вы можете установить очевидный стиль для любого элемента, у которого есть атрибут класса любого значения:
* [класс] {цвет: красный; фон: желтый; border: сплошной оранжевый 1px;}
С этим правилом любой элемент с набором классов будет выделяться наиболее привлекательным образом.Аналогичную стратегию можно использовать для выбора ячеек и заголовков таблицы, для которых установлено значение
., а теперь
:TD [nowrap], TH [nowrap] {background: red;}
Конечно, это не то, что вам нужно будет включать в развернутый дизайн, но это может помочь отследить устаревшую разметку.
Насколько это может быть полезно, это кажется немного ограничивающим, не так ли? В конце концов, какой смысл применять стили к каждому элементу с определенным классом, независимо от значения, присвоенного этому атрибуту? Нам нужен способ нацеливания на определенные комбинации атрибутов элементов и их значений.
Выбор значений атрибутов
Итак, вы хотите написать селекторы, которые используют значения. Вы делаете, не так ли? Что ж, если нет, вы, вероятно, сделаете это к тому времени, когда раздел будет закончен.
Можно создавать селекторы, нацеленные не только на атрибуты, но и на значения этих атрибутов. Общий синтаксис:
элемент [attribute = "value"]
Значение в селекторе должно точно соответствовать значению, найденному в документе, так же как элемент и атрибуты также должны точно совпадать.Следовательно, если вы поместите в селектор значение
2px
, а в документе постоянно будет использоваться2
, селектор не будет соответствовать.Допустим, вы хотите написать такие стили, чтобы все ссылки на ваших страницах, ведущие на вашу домашнюю страницу, были выделены жирным шрифтом. CSS1 способ сделать это - добавить атрибут класса к каждой ссылке, указывающей на вашу домашнюю страницу, и присвоить этому классу значение вроде «домашняя ссылка». Тогда вы должны написать:
A.homelink {font-weight: bold;}
Вот как это работает в CSS1.Это довольно громоздко, учитывая, что вам нужно специально классифицировать соответствующие ссылки. В CSS2 селекторы атрибутов устраняют необходимость в особой классификации такого рода, позволяя вам написать следующее:
A [href = "http://my.home.page/"] {font-weight: bold;}
Предполагая, что URL-адрес вашей домашней страницы -
http://my.home.page/
, это правило будет выделять жирным шрифтом любую гиперссылку на сайте, которая указывает на вашу домашнюю страницу. Однако помните, что это будет работать только в том случае, если значение, найденное в документе, точно такое же, как и в селекторе.Чтобы охватить возможные варианты, вы можете попробовать это:A [href = "http://my.home.page/"], A [href = "http://my.home.page"] {font-weight: bold;}
Вот как вы выбираете конкретное значение данного атрибута данного элемента. Вот еще один пример:
IMG [alt = ""] {видимость: скрыто;}
Здесь мы установили скрытие любого изображения с пустым атрибутом
alt
. Почему? Чтобы получить представление о том, какие части страницы будут «невидимы» для текстовых и говорящих браузеров.Опять же, это хороший диагностический инструмент, хотя это не обязательно то, что вам нужно делать в повседневном дизайне.Что-то старое новое
Также можно заменить селекторы классов и идентификаторов селекторами атрибутов. Другой вопрос, выберете ли вы эту замену или нет. Рассмотрим следующие селекторы:
P [class = "warning"] {цвет: красный; фон: белый;} h2 [id = "page-title"] {размер шрифта: 250%; border-bottom: сплошной серый 1px;}
Таким образом, любой элемент
P
сclass
изwarning
будет красным на белом, а любой элементh2
с идентификаторомid
изpage-title
будет больше и получит нижнюю границу.Конечно, мы могли бы использовать эти стили почти с таким же эффектом:P.warning {цвет: красный; фон: белый;} h2 # заголовок страницы {размер шрифта: 250%; border-bottom: сплошной серый 1px;}
Обратите внимание, что я говорю «почти такой же эффект», что является другим способом сказать, что это не совсем то же самое. Почему бы нет? Мы рассмотрим это подробно в следующей статье, а пока я упомяну, что
P.warning
будет соответствовать следующему:В то время как селектор атрибутов
P [class = "warning"]
- нет.Опять же, мы подробно рассмотрим это в следующей статье, так что следите за обновлениями.Итак, помимо желания разжечь синдром запястного канала и добиться большей точности, какие причины должны быть для использования селекторов атрибутов, когда мы пытаемся выбрать значения класса
.class
и#id
уже определены для HTML. Другие языки, например, основанные на XML, могут не соблюдать такие соглашения, и в этом случае вам придется использовать селекторы атрибутов.Один пример:статья [author = "Eric Meyer"] {font-weight: bold;}
Это приведет к тому, что любой элемент
article
с атрибутомauthor
, которому присвоено значениеEric Meyer
, будет выделен жирным шрифтом. Еще раз помните, что значение должно точно совпадать, поэтому это правило не будет соответствовать значениямEric Meyer
,E. Meyer
или дажеEricMeyer
.Опора
На момент написания этой статьи только Opera 4 и некоторые сборки Mozilla поддерживают селекторы атрибутов.К счастью, браузеры, которые не поддерживают селекторы атрибутов, похоже, полностью их игнорируют.
Хорошее начало
Возможность выбора атрибутов и значений является мощным средством, но методы, которые мы рассмотрели в этой статье, - это только начало. Впереди еще способы выбора одного из нескольких значений, методы выбора значений, которые начинаются с указанного вами значения, и многое другое. Возможно, вас заинтересует пара статей, которые я опубликовал в сети O'Reilly.Они описывают способы использования пользовательских таблиц стилей как во благо, так и во зло, и многие из описанных методов зависят от селекторов атрибутов.
Селекторы атрибутов, часть II
Селекторы атрибутов, часть II
Web Review
Август 2000 г.Селекторы атрибутов - увлекательное новое дополнение к CSS. Как мы видели в прошлый раз, вы можете использовать их для применения стилей к элементам на основе наличия определенного атрибута или на основе определенного значения данного атрибута.Это уже большая мощность, но это только начало. Как мы увидим в этом выпуске, вы можете начать применять стили на основе одного из нескольких значений атрибутов или даже фрагментов некоторых типов значений.
Выбор из списка
Многие авторы не осознают этого, но возможно иметь более одного значения в одном атрибуте класса. Например:
...
Вместо одного значения это можно рассматривать как объединение двух различных значений: срочно и предупреждающе.При таком представлении было бы замечательно, если бы мы могли создать стили для каждого, а затем еще один набор стилей, который применяется только тогда, когда два значения появляются вместе.
Хотя мы можем добиться этого с помощью относительно обычных селекторов в стиле CSS1 (мы скоро увидим, как это сделать), мы также можем сделать это немного точнее с помощью селекторов атрибутов. Во-первых, давайте рассмотрим, что мы хотим от наших стилей. Срочный текст должен быть красным, мы решаем, а текст предупреждения должен быть жирным. Если что-то одновременно является предупреждением и срочно, размер шрифта должен составлять 120% от обычного размера шрифта.Кроме того, мы хотим, чтобы это было верно для всех элементов, а не только для абзацев. Хорошо, вот что мы делаем:
* [class ~ = "срочно"] {color: red;} * [class ~ = "warning"] {font-weight: bold;} * [class = "срочное предупреждение"] {font-size: 120%;}
Заметили разницу? Первые два селектора используют комбинацию знаков равенства тильды (
~ =
), тогда как третий просто имеет простой знак равенства.Когда знаку равенства в селекторе атрибутов предшествует тильда (
~
), это означает, что селектор будет соответствовать, если перечисленное значение является одним из значений, разделенных пробелами данного атрибута.Таким образом, селектор первого правила,* [class ~ = "important"]
, будет соответствовать любому из следующих элементов:<таблица>
Пока значение срочно отображается в списке значений, элемент будет соответствовать и будет окрашен в красный цвет. Это верно, даже если срочно - единственное значение в списке, как мы видим в
ТАБЛИЦА
в предыдущем примере. Кроме того, можно легко сопоставить несрочные, поэтому не забудьте быть осторожными со значениями вашего класса, чтобы избежать семантической странности.С другой стороны, предположим, что мы убрали тильду, поэтому у нас осталось
* [class = "important"]
. Учитывая этот селектор, будет соответствовать только ТАБЛИЦА, потому что это единственный элемент, значение которого точно соответствует значению, показанному в селекторе.Селекторы атрибутов и традиционные классы
Теперь может показаться, что
* [class = "important"]
и* .urgent
одинаковы, но на самом деле это не так. Вместо этого, согласно CSS2,*.срочно
эквивалентно* [class ~ = "срочно"]
. Правильно, традиционный селектор классов будет соответствовать любому из значений в списке значений. Согласно спецификации, то есть; в реальном мире многие старые браузеры не действуют таким образом. Конечно, эти браузеры, похоже, не поддерживают несколько значений для данного атрибута, так что это может объяснить, почему у них здесь проблемы.Если вы хотите использовать селекторы классов в традиционном стиле, но хотите более точно сопоставить несколько значений, вы можете связать их вместе, например:
*.срочно.warning {font-size: 120%;}
Однако помните, что это не точное совпадение. Предыдущее правило будет соответствовать всему следующему:
Последний элемент иллюстрирует другой аспект этого вида выбора: он не зависит от порядка. Все, что должно произойти для совпадения, - это то, что значения в селекторе должны появиться в атрибуте элемента в любом порядке. Так вы получите спички за
р.red.white.blue
из следующих:Единственный способ выбрать только
- использовать селектор атрибутов без тильды, например:P [class = "красный белый синий"]
Это не соответствует
, потому что значения указаны в другом порядке. Если вы хотите сопоставить любой элемент только с этими тремя значениями, но со значениями в любом порядке, и вам нужно использовать селекторы атрибутов, вам нужно будет написать:P [class ~ = "red"] [class ~ = "white"] [class ~ = "blue"]
Это намного больше набора текста, чем
p.красный, белый, синий
, очевидно. Для этого конкретного выбора действительно имеет смысл использовать селекторы атрибутов только в том случае, если вы пишете таблицы стилей для документов, отличных от HTML, которые, вероятно, не имеют неотъемлемого понятия класса. Например:статья [author ~ = "Eric"] [author ~ = "Meyer"]
Здесь будут выбраны авторские значения Эрика Мейера, Эрика Мейера, Мейера Эрика и написанные Эриком Мейером. Однако он не выбрал бы ни Эрика Мейера, ни Эрика_ Мейера, ни даже Мейера, запятая Эрикха все портит.
Конечно, аналогичные возможности существуют с атрибутами и значениями ID. Однако более интересным является возможность выбора одного из множества значений в атрибутах, отличных от class и id.
Достижение других атрибутов
Рассмотрим случай, когда в документе есть несколько изображений. Каждый из них имеет альтернативный текст, как и должен, и каждый текст говорит что-то вроде «Рисунок 5». Таким образом, каждое изображение, которое также является фигурой, имеет слово «Рисунок» в своем альтернативном тексте.
Другими словами, слово «Рисунок» является одним из списка значений, разделенных пробелами. Итак, вы можете выбрать все цифры следующим образом:
IMG [alt ~ = "Рисунок"]
Теперь вы можете придать всем своим фигурам постоянное поле или границу, или смещать их все вправо, или что-то еще, что вы хотите сделать. При условии, конечно, что все они имеют соответствующий замещающий текст. Вам даже не нужно классифицировать изображения, чтобы это работало, что действительно может сократить объем разметки, которую вам нужно написать.
На самом деле, учитывая распространенный HTML, использование этой конкретной функции в значительной степени ограничено атрибутами class, id и alt. Однако в языке разметки на основе XML возможности практически безграничны, и именно в таких обстоятельствах селекторы атрибутов действительно пригодятся.
Еще впереди
До сих пор нам удалось охватить селекторы атрибутов способами, которые позволяют нам делать точный выбор, а также выбирать одно значение из многих. В следующей (и последней!) Части мы рассмотрим другой способ выбора целого ряда схожих значений, а также способы комбинирования различных селекторов атрибутов, чтобы получить действительно конкретную информацию.А пока не забывайте о таблице селекторов CSS, в которой отсутствует поддержка всех тем, затронутых в этой серии селекторов CSS2.
Оставить комментарий - [attribute = «value»] Селектор: Этот селектор используется для выбора всех элементов, атрибут которых имеет значение, точно такое же, как указанное значение.