Селекторы атрибутов css: Селекторы атрибута — Изучение веб-разработки

Содержание

Селекторы атрибута — Изучение веб-разработки

  • Назад
  • Обзор: Building blocks
  • Далее

Как вы знаете из курса о HTML, элементы могут иметь атрибуты, которые дают дополнительную информацию о размечаемом элементе. В CSS вы можете использовать селекторы атрибута для стилизации элементов с определёнными атрибутами. Этот урок покажет вам, как использовать эти очень полезные селекторы.

Необходимые условия:Базовая компьютерная грамотность, установка базового ПО, базовые знания о работе с файлами, основы HTML (изучите Введение в HTML) и понимание работы CSS (изучите Введение в CSS.)
Задача:Узнать, что такое селекторы атрибута и как их использовать.

Эти селекторы делают возможным выбор элемента, основанный только на наличии атрибута (например, href) или на всевозможных разного рода сочетаниях со значением атрибута.

СелекторПримерОписание
[attr]a[title]Выбирает элементы с атрибутом attr (имя которого — это значение в квадратных скобках).
[attr=value]a[href="https://example.com"]Выбирает элементы с атрибутом attr, значение которого в точности равно value — строке внутри кавычек.
[attr~=value]p[class~="special"]Выбирает элементы с атрибутом attr, значение которого в точности равно value или содержит value в своём (разделённом пробелами) списке значений.
[attr|=value]div[lang|="zh"]Выбирает элементы с атрибутом attr, значение которого в точности равно
value
или начинается с value, за которым сразу следует дефис.

В приведённом ниже примере вы можете увидеть использование этих селекторов.

  • Используя li[class], мы можем выбрать каждый селектор с атрибутом класса. Это соответствует всем пунктам списка, за исключением первого.
  • li[class="a"] выбирает селектор с классом a, но не селектор с классом a в сочетании с другим, отделённым запятой, классом как частью значения. Он выбирает второй пункт списка.
  • li[class~="a"] выберет класс a, а также значение, которое содержит класс a как часть разделённого пробелом списка. Он выберет второй и третий пункты списка.

Эти селекторы предоставляют более широкие возможности для выявления вхождения подстроки в значение атрибута. Например, если у вас есть классы

box-warning и box-error и вы хотите выбрать всё, что начинается со строки «box-«, вы можете использовать [class^="box-"], чтобы выбрать оба класса (или [class|="box"] как описано в предыдущем разделе). =»a»] выбирает все значения атрибута, которые начинаются с a, что соответствует первым двум элементам списка.
  • li[class$="a"] выбирает все значения атрибута, которые заканчиваются на a, что соответствует первому и третьему элементу списка.
  • li[class*="a"] выбирает все значения атрибута, где появляется a, независимо от положения в строке, что соответствует всем элементам нашего списка.
  • Если вы хотите выбрать значения атрибута без учёта регистра, вы можете использовать значение i перед закрывающей скобкой. Этот признак говорит браузеру, что символы ASCII должны сопоставляться без учёта регистра. Без этого признака значения будут сопоставлены в соответствии с чувствительностью к регистру языка документа — в случае HTML такая чувствительность присутствует.

    В примере ниже первый селектор выберет значение, начинающееся с a — это соответствует только первому элементу списка, потому что два других элемента списка начинаются с заглавной буквы A. Второй селектор использует признак нечувствительности к регистру и поэтому выберет все элементы списка.

    Примечание: Существует также более новое значение s, которое вызывает сопоставление с учётом регистра в контекстах, где сопоставление обычно не учитывает регистр, однако это не так хорошо поддерживается в браузерах и не очень полезно в контексте HTML.

    Итак, мы рассмотрели селекторы атрибута, и вы можете перейти к следующей статье, в которой рассказывается о псевдоклассах и псевдоэлементах.

    • Назад
    • Обзор: Building blocks
    • Далее
    1. Каскад и наследование
    2. Селекторы CSS
      • Селекторы типа, класса и ID
      • Селекторы атрибута
      • Псевдоклассы и псевдоэлементы
      • Комбинаторы
    3. Модель коробки (The box model)
    4. Фон и границы
    5. Обработка разных направлений текста
    6. Переполнение содержимого
    7. Значения и единицы измерения
    8. Изменение размеров в CSS
    9. Элементы изображений, форм и медиа-элементы
    10. Стилизация таблиц
    11. Отладка CSS
    12. Организация вашей CSS

    Found a content problem with this page?

    • Edit the page on GitHub.
    • Report the content issue.
    • View the source on GitHub.

    Want to get more involved?

    Learn how to contribute.

    This page was last modified on by MDN contributors.

    Селекторы атрибутов | 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.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. В его функции входит создание повторяющейся фоновой картинки, но повторение фона можно отменить через значение 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> 
       <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; }

    1. <p>Lorem ipsum dolor sit amet</p>
    2. <div>Lorem ipsum dolor sit amet</div>
    3. <p>Lorem ipsum dolor sit amet</p>
    4. <div>Lorem ipsum dolor sit amet</div>
    5. <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>

    Селектор атрибутов CSS

    ❮ Назад Далее ❯


    Стиль HTML-элементов с определенными атрибутами

    Можно стилизовать элементы HTML, которые имеют определенные атрибуты или значения атрибутов.


    Селектор CSS [атрибут]

    Селектор [атрибут] используется для выбора элементов с указанным атрибут.

    В следующем примере выбираются все элементы с целевым атрибутом:

    Пример

    a[target] {
     цвет фона: желтый;
    }

    Попробуйте сами »


    Селектор CSS [attribute=»value»]

    Селектор [attribute="value"] используется для выбора элементов с указанным атрибут и значение.

    В следующем примере выбираются все элементы с атрибутом target=»_blank»:

    Пример

    a[target=»_blank»] {
      background-color: yellow;
    }

    Попробуйте сами »


    Селектор CSS [attribute~=»value»]

    Селектор [attribute~="value"] используется для выбора элементов с атрибутом значение, содержащее заданное слово.

    В следующем примере выбираются все элементы с атрибутом title, содержит список слов, разделенных пробелами, одно из которых — «цветок»:

    Пример

    [title~=»flower»] {
     граница: 5 пикселей, сплошная желтая;
    }

    Попробуйте сами »

    В приведенном выше примере будут сопоставляться элементы с title=»flower», title=»summer» цветок» и title=»цветок новый», но не title=»мой-цветок» или title=»цветы».



    CSS [атрибут|=»значение»] Селектор

    Селектор [атрибут|="значение"] используется для выбора элементов с указанным атрибутом, значение которого может быть точно указанное значение или указанное значение, за которым следует дефис (-).

    Примечание: Значение должно быть целым словом, либо отдельно, например class=»top» или после дефиса (-), например.

    Пример

    [class|=»top»] {
     фон: желтый;
    } 9=»top»] {
      фон: желтый;
    }

    Попробуйте сами »


    CSS [attribute$=»value»] Селектор

    Селектор [attribute$="value"] используется для выбора элементов, атрибут которых value заканчивается указанным значением.

    В следующем примере выбираются все элементы со значением атрибута класса, заканчивается на «test»:

    Примечание: Значение не обязательно должно быть целым словом!

    Пример

    [класс$=»тест»] {
      фон: желтый;
    }

    Попробуйте сами »


    Селектор CSS [attribute*=»value»]

    Селектор [attribute*="value"] используется для выбора элементов, атрибут которых value содержит указанное значение.

    В следующем примере выбираются все элементы со значением атрибута класса, содержит «te»:

    Примечание:

    Значение не обязательно должно быть целым словом!

    Пример

    [class*=»te»] {
     фон: желтый;
    }

    Попробуйте сами »


    Стилизация форм

    Селекторы атрибутов могут быть полезны для стилизации форм без класса или идентификатора:

    Пример

    ввод[тип=»текст»] {
      ширина: 150 пикселей;
    дисплей: блок;
    нижняя граница: 10px;
    цвет фона: желтый;
    }

    ввод[тип=»кнопка»] {
      ширина: 120 пикселей;
      левое поле: 35 пикселей;
      отображение: блок;
    }

    Попробуйте сами »

    Совет: Посетите наш учебник по формам CSS, чтобы узнать больше о том, как стилизовать формы с помощью CSS.


    Проверьте себя с помощью упражнений

    Упражнение:

    Установите цвет фона на «красный» для элементов , которые имеют атрибут target .

    <стиль>
     {
      цвет фона: красный;
    }
    
    <тело>
      w3schools.com
      Disney.com
      wikipedia.org
    
     

    Начать упражнение


    Селекторы всех атрибутов CSS

    Селектор Пример Пример описания
    [ атрибут ] [цель] Выбирает все элементы с целевым атрибутом
    [ атрибут = значение ] [цель = «_blank»] Выбирает все элементы с target=»_blank» 9=»https»] Выбирает каждый элемент , значение атрибута href которого начинается с «https»
    [ атрибут $= значение ] а[href$=».pdf»] Выбирает каждый элемент , значение атрибута href которого заканчивается на «. pdf»
    [ атрибут *= значение ] а[href*=»w3schools»] Выбирает каждый элемент , значение атрибута href которого содержит подстроку «w3schools»

    ❮ Предыдущий Следующий ❯


    CSS [атрибут=значение] Селектор

    ❮ Предыдущий Справочник по селекторам CSS Далее ❯


    Пример

    Стиль элементов с target=»_blank»:

    a[target=»_blank»] {
    цвет фона: желтый;
    }

    Попробуйте сами »

    Другие примеры «Попробуйте сами» ниже.


    Определение и использование

    Атрибут [ = значение ] селектор используется для выбора элементов с указанным атрибутом и значением.

    Версия: CSS2

    Поддержка браузера

    Цифры в таблице указывают первую версию браузера, которая полностью поддерживает селектор.

    Селектор
    [ атрибут = значение ] 4,0 7,0 2,0 3.1 9,6


    Синтаксис CSS

    [ атрибут = значение ] {
      объявления css ;
    } Демонстрация


    Дополнительные примеры

    Пример

    Когда получает фокус, постепенно меняйте ширину от 100 пикселей до 250 пикселей:

    input[type=»text»] {
      ширина: 100 пикселей;
      переход: плавность входа-выхода, ширина 0,35 с плавного входа-выхода;
    }

    input[type=»text»]:focus {
      ширина: 250 пикселей;
    }

    Попробуйте сами »


    Связанные страницы

    Учебник CSS: Селекторы атрибутов CSS

    ❮ Предыдущая Справочник по селекторам CSS Следующий ❯


    ВЫБОР ЦВЕТА



    Лучшие учебники
    Учебное пособие по HTML
    Учебное пособие по CSS
    Учебное пособие по JavaScript
    Учебное пособие
    Учебное пособие по SQL
    Учебник по Python
    Учебник по W3. CSS
    Учебник по Bootstrap
    Учебник по PHP
    Учебник по Java
    Учебник по C++
    Учебник по jQuery

    Основные ссылки
    Справочник по HTML
    Справочник по CSS
    Справочник по JavaScript
    Справочник по SQL
    Справочник по Python
    Справочник по W3.CSS
    Справочник по Bootstrap
    Справочник по PHP
    Цвета HTML
    Справочник по Java
    Справочник по Angular
    Справочник по jQuery

    9 Лучшие примеры4 Примеры HTML

    Примеры CSS
    Примеры JavaScript
    Примеры инструкций
    Примеры SQL
    Примеры Python
    Примеры W3.CSS
    Примеры Bootstrap
    Примеры PHP
    Примеры Java
    Примеры XML
    Примеры jQuery2 FORUM

    3

    О

    W3Schools оптимизирован для обучения и обучения. Примеры могут быть упрощены для улучшения чтения и обучения. Учебники, ссылки и примеры постоянно пересматриваются, чтобы избежать ошибок, но мы не можем гарантировать полную правильность всего содержания.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *