Чем удобен селектор :any() - «Верстка»
Microsoft открыла регистрацию на бесплатный год обновлений безопасности для Windows 10 - «Новости сети»
Microsoft открыла регистрацию на бесплатный год обновлений безопасности для Windows 10 - «Новости сети»
Их заменил ИИ: ведущие технологические компании уволили более 100 000 специалистов с начала года - «Новости сети»
Их заменил ИИ: ведущие технологические компании уволили более 100 000 специалистов с начала года - «Новости сети»
«Парадокс успеха»: глава Microsoft попытался успокоить сотрудников после новой волны увольнений - «Новости сети»
«Парадокс успеха»: глава Microsoft попытался успокоить сотрудников после новой волны увольнений - «Новости сети»
Intel пригрозила бросить освоение передового техпроцесса 14A, если на него не найдётся заказчиков - «Новости сети»
Intel пригрозила бросить освоение передового техпроцесса 14A, если на него не найдётся заказчиков - «Новости сети»
Анонсированы смартфоны Realme 15 и 15 Pro с улучшенными камерами и чипами Snapdragon 7 Gen 4 и Dimensity 7300+ - «Новости сети»
Анонсированы смартфоны Realme 15 и 15 Pro с улучшенными камерами и чипами Snapdragon 7 Gen 4 и Dimensity 7300+ - «Новости сети»
Новая ролевая модель в Вебмастере — «Блог для вебмастеров»
Новая ролевая модель в Вебмастере — «Блог для вебмастеров»
Почти полноценную Windows XP теперь можно запустить прямо в браузере - «Новости сети»
Почти полноценную Windows XP теперь можно запустить прямо в браузере - «Новости сети»
Microsoft узнала о критической уязвимости SharePoint ещё два месяца назад, но не смогла её исправить - «Новости сети»
Microsoft узнала о критической уязвимости SharePoint ещё два месяца назад, но не смогла её исправить - «Новости сети»
Слухи: новым руководителем российского издателя «Мира танков» и «Мира кораблей» станет бывший гендиректор «ВКонтакте» - «Новости сети»
Слухи: новым руководителем российского издателя «Мира танков» и «Мира кораблей» станет бывший гендиректор «ВКонтакте» - «Новости сети»
Эксперты рассказали, как не получить штраф за поиск экстремистских материалов - «Новости сети»
Эксперты рассказали, как не получить штраф за поиск экстремистских материалов - «Новости сети»
Новости мира Интернет » Самоучитель CSS » Вёрстка » Чем удобен селектор :any() - «Верстка»

Недавно я наткнулся на селектор, который появился в новой версии браузера FireFox (а также в ночных билдах движка webkit). Называется этот селектор :any(). В этой статье мы рассмотрим для чего он предназначен и чем он может быть нам полезен.


Обратите внимание, что :any() пока что не является частью спецификации CSS3. Но поскольку Webkit уже реализовали его, я уверен что за ним последуют и другие. Также, для того чтобы использовать селектор в FireFox, необходимо воспользоваться префиксом -moz. Итак, давайте посмотрим что же это за селектор.


Проблема


Проблема во вложенных элементах в CSS селекторах. Например:


/* Ссылки для всего сайта */
/* Уровень 0 */
a {
color:	#eee;

/* Ссылки для списков, навигации, хидера и футера */
/* Уровень 1 */
li a, nav a, header a, footer a {
color:	#555;

/* Специфичные ссылки, другой уровень вложенности */
/* Уровень 2 */
section li a, section nav a, section header a, section footer a,
article li a, article nav a, article header a, article footer a,
aside li a, aside nav a, aside header a, aside footer a {
color:	#000;

/* Уровень 3 */
/* ну вы поняли о чём я */

Как видите, каждый следующий уровень всё сложнее для восприятия.


Решение


Селектор :any() создан для того чтобы объединить несколько селекторов вместе, чтобы получить тот же самый эффект. Таким образом повышая читабельность вашего CSS-файла.


/* Ссылки для всего сайта */
/* Уровень 0 */
a {
color:	#eee;

/* Ссылки для списков, навигации, хидера и футера */
/* Уровень 1 */
:any(li, nav, header, footer) a {
color:	#555;

/* Специфичные ссылки, другой уровень вложенности */
/* Уровень 2 */
:any(section, article, aside)
:any(li, nav, header, footer) a {
color:	#000;

/* Применяется только для заголовков в другом уровне вложенности */
/* Уровень 3 */
:any(section, article, aside)
:any(li, nav, header, footer)
:any(h1, h2, h3) a {
color:	#aaa;

Вместо заключения


Как видите, можно сгруппировать несколько селекторов в один :any(), для того чтобы добраться до целевого элемента. Это гораздо лучше читается, вследствие чего ваши HTML и CSS становятся проще для понимания и поддержки.


Но кроме того, этот селектор особенно удобен при использовании тегов HTML5, таких как section, header, footer, nav, aside и т.п. Поскольку с помощью HTML5, разработчики пытаются уйти от тега div и сделать веб более осмысленным (в смысле семантически), CSS селектор делает ещё один шаг вперёд. Для решения описанных выше проблем можно использовать определённые классы, чтобы добиться того же самого поведения. Но зачем так делать, если ваш HTML уже семантически корректен?


Таким образом этот селектор особенно полезен, когда вы аккуратно и правильно используете HTML5 разметку с вложенными элементами и не хотите засорять её ненужными классами (либо идентификаторами).


Примеры и ссылки по теме




  • Примерчики


  • Описание на mozilla.org


  • Статус для Webkit


  • Ещё немного с Mozilla

Цитирование статьи, картинки - фото скриншот - Rambler News Service.
Иллюстрация к статье - Яндекс. Картинки.
Есть вопросы. Напишите нам.
Общие правила  поведения на сайте.

Недавно я наткнулся на селектор, который появился в новой версии браузера FireFox (а также в ночных билдах движка webkit). Называется этот селектор :any(). В этой статье мы рассмотрим для чего он предназначен и чем он может быть нам полезен. Обратите внимание, что :any() пока что не является частью спецификации CSS3. Но поскольку Webkit уже реализовали его, я уверен что за ним последуют и другие. Также, для того чтобы использовать селектор в FireFox, необходимо воспользоваться префиксом -moz. Итак, давайте посмотрим что же это за селектор. Проблема Проблема во вложенных элементах в CSS селекторах. Например: Как видите, каждый следующий уровень всё сложнее для восприятия. Решение Селектор :any() создан для того чтобы объединить несколько селекторов вместе, чтобы получить тот же самый эффект. Таким образом повышая читабельность вашего CSS-файла. Вместо заключения Как видите, можно сгруппировать несколько селекторов в один :any(), для того чтобы добраться до целевого элемента. Это гораздо лучше читается, вследствие чего ваши HTML и CSS становятся проще для понимания и поддержки. Но кроме того, этот селектор особенно удобен при использовании тегов HTML5, таких как section, header, footer, nav, aside и т.п. Поскольку с помощью HTML5, разработчики пытаются уйти от тега div и сделать веб более осмысленным (в смысле семантически), CSS селектор делает ещё один шаг вперёд. Для решения описанных выше проблем можно использовать определённые классы, чтобы добиться того же самого поведения. Но зачем так делать, если ваш HTML уже семантически корректен? Таким образом этот селектор особенно полезен, когда вы аккуратно и правильно используете HTML5 разметку с вложенными элементами и не хотите засорять её ненужными классами (либо идентификаторами). Примеры и ссылки по теме Примерчики Описание на mozilla.org Статус для Webkit Ещё немного с Mozilla

Смотрите также

А что там на главной? )))



Комментарии )))