вторник, 22 октября 2013 г.

Вменяемый урок о специфике работы CSS

 Метки урока:css

Поговорим о специфике работы CSS

 Если вы часто используете CSS, то наверняка вам будет полезно знать о специфике его работы. Настоящий мастер в первую очередь должен знать именно это, а потом уже как позиционировать и оформлять элементы. Так же, если вы когда-то использовали ключевое слово important!, то эта статья так же для вас.

Как браузер читает CSS

В первую очередь вам необходимо знать, каким образом браузер читает CSS код. Делает он это сверху вниз, проходясь последовательно по каждой строчке:
/*Строка 10*/
ul li a {
 color: red;
}

/*Строка 90*/
ul li a {
 color: blue;
}


Правило написанное на строке 10, будет заменено на строке 90. В результате цвет ссылки будет синим. Правила с одинаковыми селекторами, которые находятся ближе к концу файла имеют больший приоритет.
Тот же самый принцип работает при последовальном подключении CSS файлов:


Специфика

Всё вышеперечисленное имеет место быть в том случае, если вес ваших селекторов одинаков. Если же вы приписываете ID, классы или вложенность элементов, то тут включается CSS специфика.
Существует 4 категории составляющих веса селектора: строчные стили, ID, классы и простые элементы. Как оценивать вес? Расклад такой:
  • ID-шки весят 100 очков
  • Классы весят 10 очков
  • Элементы весят по 1 очку
Зная это, рассчитаем приоритет селектора:
#content .sidebar .module li a

100 + 10 + 10 + 1 + 1 = 122 (ID, 2 класса, 2 элемента)
Запомните:
  • ID весит больше всего по сравнению с классами и элементами, поэтому вы должны ограничить использование ID в ваших стилях до минимума;
  • В случаях, когда селекторы весят одинаково, порядок их применения будет такой: последний селектор имеет больший приоритет;
  • Стили списанные в HTML самые козырные, так как они ближе всех к элементу;
  • Единственный способ переопределить встроенные стили, это использовать ключевое слово !important;
  • Псевдо-классы и атрибуты весят так же, как и обычные классы;
  • Псевдо-элементы весят, как обычные элементы;
  • Универсальный селектор (*) не весит ничего.

Примеры:

 ul li a {
 color: red;
}
Общий вес данного селектора 3 очка, так что добавив класс другой селектор будет иметь приоритет повыше.
.content #sidebar {
 width: 30%;
}
Данный селектор весит 110 очков из-за ID и класса.
.post p:first-letter {
 font-size: 16px;
}
Этот селектор весит 12 очков, так как псевдо-элемент :first-letter и тэг параграфа весят по одному баллу.
p {
font-family: Helvetica, arial, sans-serif;
}
Этот селектор весит всего 1 очко. Подобный тип селектора должен быть написан в верхней части страницы. При написании основных стилей, которые в дальнейшем могут быть переопределены для конкретных областей.
Запомните, что для переопределения ID-шки, вы должны написать 256 классов для одного элемента:
#title {
 font-weight: bold;
}

.home .page .content .main .posts .post .post-content .headline-area .wrapper /* ... etc. ... */ .title {
  font-weight: normal;
}
Только так второй селектор перебьёт первый.

Итог

Конечно теоретическая специфика CSS это далеко не самый важный аспект. Однако, зная эти правила можно ускорить работу над сайтом.

Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: http://www.webdesignerdepot.com/2013/04/how-to-use-css-specificity/
Перевел: Станислав Протасевич
Урок создан: 7 Мая 2013




 


Комментариев нет:

Отправить комментарий

X-Plane 11, 12 - любитель, Фото любитель со стажем

Постоянные читатели

Архив блога