Меню
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP КАК СДЕЛАТЬ ПРОГРАММЫ SW3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS КИБЕРБЕЗОПАСНОСТЬ НАУКА О ДАННЫХ
     ❯   

CSS Учебник


CSS Продвинутый


CSS Отзывчивый


CSS Grid


CSS SASS


CSS Примеры


CSS Справочники



CSS Особенности



Что такое специфика?

Если есть два или более правил CSS, которые указывают на один и тот же элемент, селектор с наивысшим значением специфичности "выиграет", и его объявление стиля будет применено к этому HTML-элементу.

Думайте о специфичности как о балле/ранге, который определяет, какое объявление стиля в конечном итоге применяется к элементу.

Посмотрите следующие примеры:

Пример 1

В этом примере мы использовали элемент "p" в качестве селектора и указали красный цвет для этого элемента. Текст будет выделен красным цветом:

<html>
<head>
  <style>
    p {color: red;}
  </style>
</head>
<body>

<p>Hello World!</p>

</body>
</html>

Попробуйте сами »

Теперь посмотрите пример 2:

Пример 2

В этом примере мы добавили селектор класса (с именем "test") и указали зеленый цвет для этого класса. Текст теперь будет зеленым (несмотря на то, что мы указали красный цвет для селектора элементов "p"). Это происходит потому, что селектору класса присвоен более высокий приоритет:

<html>
<head>
  <style>
    .test {color: green;}
    p {color: red;}
  </style>
</head>
<body>

<p class="test">Hello World!</p>

</body>
</html>

Попробуйте сами »

Теперь посмотрите пример 3:

Пример 3

В этом примере мы добавили селектор идентификаторов (с именем "demo"). Текст теперь будет синим, потому что селектору идентификатора присвоен более высокий приоритет:

<html>
<head>
  <style>
    #demo {color: blue;}
    .test {color: green;}
    p {color: red;}
  </style>
</head>
<body>

<p id="demo" class="test">Hello World!</p>

</body>
</html>

Попробуйте сами »

Теперь посмотрите пример 4:

Пример 4

В этом примере мы добавили встроенный стиль для элемента "p". Текст теперь будет розовым, потому что встроенному стилю присвоен наивысший приоритет:

<html>
<head>
  <style>
    #demo {color: blue;}
    .test {color: green;}
    p {color: red;}
  </style>
</head>
<body>

<p id="demo" class="test" style="color: pink;">Hello World!</p>

</body>
</html>

Попробуйте сами »



Иерархия специфичности

Каждый CSS-селектор имеет свое место в иерархии специфичности.

Существует четыре категории, которые определяют уровень специфичности селектора:

  1. Встроенные стили - Пример: <h1 style="color: pink;">
  2. IDs - Пример: #navbar
  3. Классы, псевдо-классы, селекторы атрибутов - Пример: .test, :hover, [href]
  4. Элементы и псевдо-элементы - Пример: h1, ::before

Как рассчитать специфичность?

Запомните, как вычислять специфичность!

Начните с 0, добавьте 100 для каждого значения идентификатора, добавьте 10 для каждого значения класса (или селектора псевдокласса или атрибута), добавьте 1 для каждого селектора элемента или псевдоэлемента.

Примечание: Встроенный стиль получает значение специфичности 1000, и ему всегда присваивается наивысший приоритет!

Примечание 2: Из этого правила есть одно исключение: если вы используете !important, оно даже переопределит встроенное стили!

В таблице ниже приведены некоторые примеры того, как рассчитать значения специфичности:

Селектор Значение специфичности Расчет
p 1 1
p.test 11 1 + 10
p#demo 101 1 + 100
<p style="color: pink;"> 1000 1000
#demo 100 100
.test 10 10
p.test1.test2 21 1 + 10 + 10
#navbar p#demo 201 100 + 1 + 100
* 0 0 (универсальный селектор игнорируется)

Селектор с наивысшим значением специфичности победит и вступит в силу!

Рассмотрим следующие три фрагмента кода:

A: h1
B: #content h1
C: <div id="content"><h1 style="color: #ffffff">Заголовок</h1></div>

Специфичность A равна 1 (один селектор элементов)
Специфичность B равна 101 (одна ссылка на идентификатор + один селектор элементов)
Специфичность C равна 1000 (встроенный стиль)

Поскольку третье правило (C) имеет наибольшее значение специфичности (1000),будет применено это объявление стиля.


Дополнительные примеры правил конкретизации

Равная специфичность: выигрывает последнее правило - Если одно и то же правило дважды записывается во внешнюю таблицу стилей, то выигрывает последнее правило:

h1 {background-color: yellow;}
h1 {background-color: red;}

Попробуйте сами »

Последнее правило применяется всегда.


ID селекторы имеют более высокую специфичность, чем селекторы атрибутов - Посмотрите на следующие три строки кода:

div#a {background-color: green;}
#a {background-color: yellow;}
div[id=a] {background-color: blue;}

Попробуйте сами »

Первое правило является более конкретным, чем два других, оно будет применяться.


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

Из внешнего файла CSS:
#content h1 {background-color: red;}

В HTML файле:
<style>
#content h1 {
    background-color: yellow;
}
</style>

Будет применяться последнее правило.


Селектор класс превосходит любое количество селекторов элементов - селектор класса, например: .intro выигрывает у h1, p, div и т.д.:

.intro {background-color: yellow;}
h1 {background-color: red;}

Попробуйте сами »


Универсальный селектор и наследуемые значения имеют спецификацию 0 - *, body* и подобное имеют нулевую специфичность. Унаследованные значения также имеют спецификацию 0.



×

Связаться с отделом продаж

Если вы хотите использовать услуги schoolsw3 как образовательное учреждение, команда или предприятие, отправьте нам электронное письмо:
sales@schoolsw3.com

Сообщить об ошибке

Если вы хотите сообщить об ошибке или внести предложение, отправьте нам электронное письмо:
help@schoolsw3.com

Schoolsw3 оптимизирован для обучения и подготовки. Примеры могут быть упрощены для улучшения чтения и обучения. Учебники, ссылки и примеры постоянно проверяются, чтобы избежать ошибок, но мы не можем гарантировать полную правильность всего контента.
При использовании Schoolsw3 вы соглашаетесь прочитать и принять наши условия использования,
политику использования файлов cookie и конфиденциальности.

Авторское право 1999- принадлежит Refsnes Data. Все права защищены. Schoolsw3 работает на SW3.CSS.