Главная->Уроки по css->Почему следует использовать селектор :any()
Почему следует использовать селектор :any()
С момента выхода Firefox 4 перед нами открылось множество новых CSS селекторов. Пробежавшись по CSS селекторам, которые были включены в Firefox 4 (ну и соответственно в Webkit), я натолкнулся на селектор :any(). В этом уроке мы продемонстрируем применение данного селектора. КАРТИНКА 1 Сразу же хочу отметить, что селектора :any() нет в CSS3 спецификации (пока что), но я уверен, что за Webkit последуют и другие браузеры. Для того, чтобы данный селектор работал в Firefox, мы будем использовать префикс -moz-:-moz-что_угодно. Давайте же взглянем на то, что можно сделать при помощи селектора :any(). Задача Итак, пример: 01 /* Ссылки на сайте */ 02 /* Уровень 0 */ 03 a { 04 color:#eee; 05 } 06 07 /* Ссылки в списках, навигации, заголовке и футере */ 08 /* Уровень 1 */ 09 li a, nav a, header a, footer a { 10 color:#555; 11 } 12 13 /* Другие виды ссылок */ 14 /* Уровень 2 */ 15 section li a, section nav a, section header a, section footer a, 16 article li a, article nav a, article header a, article footer a, 17 aside li a, aside nav a, aside header a, aside footer a { 18 color:#000; 19 } 20 21 /* Уровень 3 */ 22 /* Ну в общем вы поняли… */ Вы заметили, что чем дальше мы идём, тем сложнее читать сформированные CSS правила. Решение Селектор :any() создан для того, чтобы сгруппировать некоторые селекторы. Итак, давайте посмотрим: 01 /* Ссылки на сайте */ 02 /* Уровень 0 */ 03 a { 04 color:#eee; 05 } 06 07 /* Уровень 1 */ 08 :any(li, nav, header, footer) a { 09 color:#555; 10 } 11 12 /* Уровень 2 */ 13 :any(section, article, aside) 14 :any(li, nav, header, footer) a { 15 color:#000; 16 } 17 18 /* Уровень 3 */ 19 :any(section, article, aside) 20 :any(li, nav, header, footer) 21 :any(h1, h2, h3) a { 22 color:#aaa; 23 } Лучше! Не правда ли? Заключение Как вы уже успели заметить, селектор :any() значительно увеличивает читабельность CSS кода. Особенно его удобно применять при использовании новых HTML5 тегов, таких как section, header, footer, nav, aside и т.д. А что вы думаете по этому поводу?