Привет, Хабр!
Предлагаю вашему вниманию перевод статьи «6 powerful CSS selectors that will really help you write clean CSS» автора Ibrahima Ndaw.
Селекторы в CSS используются для выбора элементов и стиля. Селекторы производительны и поэтому пользуются популярностью у разработчиков. В этой статье приведены 6 селекторов CSS, которые помогут написать чистый CSS в вашем следующем проекте (если, конечно, вы его используете).
Иногда сложно найти необходимый элемент для стиля, потому что CSS-файл работает на высокой скорости. И использование такого рода селекторов полезно в зависимости от случая использования.
Предлагаю вашему вниманию перевод статьи «6 powerful CSS selectors that will really help you write clean CSS» автора Ibrahima Ndaw.
Селекторы в CSS используются для выбора элементов и стиля. Селекторы производительны и поэтому пользуются популярностью у разработчиков. В этой статье приведены 6 селекторов CSS, которые помогут написать чистый CSS в вашем следующем проекте (если, конечно, вы его используете).
- div >a
Этот селектор позволит выбрать а-элементы, где родительский элемент будет div тегом.
<!-- This one will be selected --> <div> <a></a> </div> <!-- This one will not be selected --> <p> <a><b></b></a> </p>
- div +a
При этом будут выбраны а-теги, размещенные сразу после div элемента. Если между div тегом и а тегом стоит элемент, этот элемент не будет использован.
<main> <!-- This one will be selected --> <div></div> <a></a> <!-- This one will be not selected --> <div></div> <p></p> <a></a> </main>
- div ~a
Это селектор будет выбирать каждый a тег, предшествующий div элементу на том же уровне. Другими словами, если a тег не предшествует непосредственно div элементу, но имеет div тег в качестве одноуровнего элемента, этот элемент будет выбран.
<main> <!-- This one will be selected --> <div></div> <a></a> <!-- This one will be selected --> <div></div> <p></p> <a></a> <section> <!-- This one will be selected --> <div></div> <p></p> <a></a> </section> <footer> <!-- This one will be not selected --> <p></p> <a></a> </footer> </main>
- [attribute^=value]
Например: [class =«list-»]
Этот селектор будет выбирать каждый элемент, содержащий class атрибут, где значение начинается с list-
<main> <!-- This one will be selected --> <div class="list-element"></div> <!-- This one will be selected --> <div class="list-container"></div> <!-- This one will be selected --> <div class="list-item"></div> <!-- This one will be not selected --> <div class="list__footer"></div> </main>
- [attribute$=value]
Например: [src$=".png"]
Это селектор будет выбирать каждый src атрибут, где значение заканчивается .png
<div> <!-- This one will be selected --> <img src="image1.png"> <!-- This one will be not selected --> <img src="image2.jpg"> <!-- This one will be selected --> <img src="image3.png"> <!-- This one will be not selected --> <img src="image4.svg"> </div>
- [attribute*=value]
Например: [class*="-list"].
Этот селектор будет выбирать каждый элемент, class атрибут которого содержит -list. Это не рассматривается, если -list стоит в начале, середине или в конце значения класса.Главное, чтобы значение включало в себя -list
<main> <!-- This one will be selected --> <div class="main-list-container"></div> <!-- This one will be selected --> <div class="primary-list"></div> <!-- This one will be selected --> <div class="primary-list-item"></div> <!-- This one will be not selected --> <div class="list-footer"></div> </main>
Вывод
Иногда сложно найти необходимый элемент для стиля, потому что CSS-файл работает на высокой скорости. И использование такого рода селекторов полезно в зависимости от случая использования.
Комментарии (10)
sfi0zy
14.12.2019 19:35+3Селекторы производительны и поэтому пользуются популярностью у разработчиков
Да не производительные они, а являются мощным инструментом в умелых руках. Производительность — это все же про скорость работы.
Если между div тегом и а тегом стоит элемент, этот элемент не будет использован.
Не элемент не будет использован, а тег «а» не будет выбираться селектором.
Это селектор будет выбирать каждый a тег, предшествующий div элементу на том же уровне.
Ровно наоборот, он будет выбирать тег «a», которому предшествует «div».
Иногда сложно найти необходимый элемент для стиля, потому что CSS-файл работает на высокой скорости.
Ох, гуглопереводы они такие, да. Но по теме вспоминается статья
The 30 CSS Selectors You Must Memorize, там подборка всякого полезного более полная.
Paul_King
14.12.2019 21:47Дожили…
Такого на хабре я еше не видал. Базовые вещи из начальной главы любого учебника по верстке преподносятся как «мощный» инструмент для «чистого кода».
Ждем статьи с содержанием вида «а вы знали, что в HTML есть мощнейший тег, который позволит создавать ссылки на другие страницы!? Встречайте! Тег !»
Aingis
15.12.2019 16:22+1Такое интересно будет разве что тем, кто про селекторы вообще ничего не слышал. Могло сойти для туториала, но тему стоило бы раскрыть больше. Например, специфичность селектора
* + .class
относительно.class:not(:first-child)
.
CoolCmd
ужасная статья, ужасный перевод.
вот "статья", которой достаточно для понимания селекторов: http://www.w3.org/TR/css3-selectors/#selectors
Alexufo
У w3 вырвиглазно. Вот ут гараздо нагляднее
www.w3schools.com/cssref/css_selectors.asp