The Wayback Machine - https://web.archive.org/web/20090515134659/http://cssmake.ru:80/component/content/article/10/154.html

Селекторы классов

( 0 - user rating )

Оригинал: Class selectors

Введение

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

Например, если вы хотите выделить параграф и первый пункт списка, чтоб они отличались от общего текста, то это можно реализовать следующим способом:

  1. <body>
  2. <p class="big">
  3. Любой текст
  4. </p>
  5. <p>
  6. Любой текст
  7. </p>
  8. <ul>
  9. <li class="big">
  10. Элемент списка
  11. </li>
  12. <li>
  13. Элемент списка
  14. </li>
  15. </ul>
  16. </body>
Дерево такого html документа будет таким:

типы селекторов

css правила для класса .big :
  1. .big {font-size:110%;font-weight:bold;}

Комбинирование названий классов и типа селекторов

Если при составлении css правил вы хотите быть более точными, то можно указывать для какого типа селекторов будет использоваться класс.
  1. div.big {color:blue;}
  2. td.big {color:yellow;}
  3. label.big {color:green;}
  4. form.big {color:red;}
Например, вы хотите, чтоб шрифт начала параграфа и первый элемент списка был большего размера, но чтоб начало параграфа было выделено жирным. Ниже показано дерево этого способа и используемые для этого стили:

типы селекторов

  1. .big {font-size:110%;}
  2. p.big {font-weight:bold;}
Все элементы с классом .big будут использовать размер шрифта равный 110% от основного. А жирным будет выделен лишь тот текст, который находится в параграфе с классом .big.

Комбинирование классов для одного элемента

Наверно самым мощным аспектом классов селекторов является то, что вы можете использовать несколько классов для одного элемента.
  1. <p class="big indent">
  2. Любой текст
  3. </p>
  1. .big {font-weight:bold;}
  2. .indent {padding-left:2em;}
Такое комбинирование классов для одного элемента позволяет создавать классы нацеленные лишь на одну функцию. В данном примере используются два класса, один из них направлен на воздействие для шрифта, а второй для отступов.

Подмена классами html элементов

Как показано выше использование классов - это очень мощный инструмент для создания стилей сайта. Но не нужно переусердствовать.
  1. <div class="heading">
  2. Заголовок
  3. </div>
  1. .heading {
  2. font-weight:bold;
  3. font-size:140%;
  4. color:#600;
  5. }

Проблема описанного выше способа создания заголовка заключается в том, что браузеры не поймут, что эта конструкция - заголовок и будут воспринимать как обычный текст, что противоречит принципам семантической верстки.

Для создания заголовков предпочтительней будет следующий способ:

  1. <h2>
  2. Заголовок
  3. </h2>
  1. h2 {
  2. font-weight:bold;
  3. font-size:140%;
  4. color:#600;
  5. }

А если вам нужно стилизировать лишь один заголовок второго уровня на странице, то вы можете создать специальный класс для этого:

  1. <h2 class="sidenav">
  2. Заголовок
  3. </h2>
  1. h2.sidenav {
  2. font-weight:bold;
  3. font-size:140%;
  4. color:#600;
  5. }

Меньше классов!

Не следует злоупотреблять классами селекторов. Например, вы можете создать для каждого элемента, который будет использоваться и это будет считатся ошибкой.
  1. <div class="sidenav">
  2. <h2 class="sideheading">Навигация сайта</h2>
  3. <ul class="sidelist">
  4. <li class="sideheading">элемент списка</li>
  5. <li class="sideheading"> <a href="#"><span class= "sidelink">элемент списка</span></a> </li>
  6. <li class="sideheading">элемент списка</li>
  7. </ul>
  8. </div>

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

  1. <div class="sidenav">
  2. <h2>Навигация сайта</h2>
  3. <ul>
  4. <li>элемент списка</li>
  5. <li> <a href="#">элемент списка</a> </li>
  6. <li>элемент списка</li>
  7. </ul>
  8. </div>
Как видите структура становится намного проще и понятней. И для этой структуры разработать стили очень просто. Все будет базироватся на наследовании от главного контейнера div.
  1. div.sidenav {}
  2. div.sidenav h2 {}
  3. div.sidenav ul {}
  4. div.sidenav li {}
  5. div.sidenav li a {}

Подумайте, прежде чем создавать класс

Прежде чем создавать класс для селектора, вы должны ответить на следующие вопрсы:
  1. Существует ли html элемент, селектор которого мог бы использоватся вместо класса?
  2. Не создан ли уже класс или id который можно было бы использовать не создавая новый класс?

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


Защитный код
Обновить

odnaknopka.ru/kolyan.cz
Morty Proxy This is a proxified and sanitized view of the page, visit original site.

Переводы


прошивка iphone в украине. курсы 1с в Москве
Информация: аптечное оборудование свежие решения
вип-залы

Selectutorial

Селекторы в действии

listutorial

Изображения для маркеров списка

Компания И-медиа: интернет реклама оптимизация. светильники галогенные. Стальная дверь. Заказ со скидкой: стальные двери.
статьи
Morty Proxy This is a proxified and sanitized view of the page, visit original site.