Каскадные стили: Каскадные таблицы стилей — Документация по Веб-программированию 0.0.0

Каскадность в CSS | Основы современной верстки

Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером

Видео может быть заблокировано из-за расширений браузера. В статье вы найдете решение этой проблемы.

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

Что такое каскадность? Представьте себе каскад водопадов. В них вода перетекает из одного водопада в другой и так до тех пор, пока это все не уйдет в общий бассейн.

В CSS слово каскадность имеет такое же значение. В качестве воды у нас CSS свойства. Они могут накладываться и перекрывать друг друга. Другими словами каскадность — возможность языка CSS накладывать свойства друг на друга, а также расширять свойства в селекторах.

Возможно такое описание достаточно сложное, но давайте посмотрим на примере. Создадим параграф с двумя классами: text-bold и text-dark. Первый класс будет отвечать за жирное начертание текста, а второй за установку темного цвета шрифта. Также добавим селектор по тегу и укажем размер шрифта 24 пикселя.

<p>
  Какой-то очень интересный текст об интересной вещи. Очень интересно.
</p>

В CSS файле укажем следующие стили:

p {
  font-size: 24px;
}
.text-bold {
  font-weight: bold;
}
.text-dark {
  color: #333333;
}

Попробуйте воспроизвести этот пример, и вы увидите, что текст выводится темного цвета и с жирным начертанием. Стили от классов text-bold и text-dark сложились и применились к нашему параграфу. Также текст имеет размер 24 пикселя, которые мы указали для селектора по тегу.

Итоговыми стилями для нашего параграфа будут:

 {
  color: #333333;
  font-weight: bold;
  font-size: 24px;
}

Это и есть каскадность стилей CSS. Хоть мы и использовали разные селекторы и классы для описания, но в конечном итоге они суммировались.

Приоритет селекторов

Важной чертой CSS является то, что разные типы селекторов имеют разный приоритет. Если стили противоречат друг другу в разных селекторах, то вступает в дело принцип приоритета. Разберем на примере. Возьмем параграф с классом red и идентификатором blue. Установим соответствующие цвета для текста. Для всех же параграфов в тексте установим зеленый цвет.

p {
  color: green;
}
.red {
  color: red;
}
#blue {
  color: blue;
}
<p>Какого же цвета будет параграф?</p>

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

Как вы смогли заметить, текст параграфа будет синим. Но почему так? Может быть, дело в том, что синий цвет в CSS указан самым последним? В данном случае нет. Даже если мы переместим селектор по идентификатору в самый вверх, параграф все равно останется синим.

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

Условно можно расставить селекторы в следующем порядке по приоритету:

  1. Селектор по идентификатору (#blue)
  2. Селектор по классу (.red)
  3. Селектор по тегу (p)

Где 1 — самый высокий приоритет, а 3 — самый низкий.

Разберем еще один пример:

p {
  color: blue;
  font-weight: bold;
}
.important {
  color: purple;
  font-style: italic;
}
#intro {
  color: green;
}
<p>Индейские племена Манахаттоу и Канарси.</p>

Этот текст будет наклонным, жирным и зеленым. И вот почему:

  • Селектор по тегу p:
    • Добавит синий цвет
    • Добавит жирное начертание
  • Селектор по классу . important:
    • Заменит синий цвет на пурпурный
    • Сделает текст курсивным
  • Селектор по идентификатору #intro:
    • Заменит пурпурный цвет на зеленый

После всех таких преобразований итоговые стили для параграфа сложатся следующим образом:

 {
  color: green;
  font-weight: bold;
  font-style: italic;
}

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


Переопределение свойств

Возможно у вас возник вопрос, а что случится, если элемент будет иметь несколько классов, свойства которых противоречат друг другу? Здесь каскадность работает по принципу «Кто последний, тот и прав». Проще всего это так же посмотреть на примере:

.alert {
  color: gray;
}
.alert-error {
  color: red;
}
<p>Важное сообщение! Сообщение красного цвета</p>

Отталкиваясь от принципа каскадности, браузер вначале увидит селектор .alert и установит серый цвет текста. Далее ему встретится селектор .alert-error, который говорит установить красный цвет. И браузер просто перезапишет серый цвет на красный. Порядок классов в HTML в данном случае не играет никакой роли. Даже в таком случае

<p>Важное сообщение! Сообщение красного цвета</p>

цвет текста будет красным. Это наглядно показывает независимость CSS от HTML. Если же поменять местами селекторы в CSS, то поменяются и итоговые стили.

.alert-error {
  color: red;
}
.alert {
  color: gray;
}
<p>Важное сообщение! Сообщение серого цвета</p>

Вес селекторов

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

<textarea></textarea>
.form-input {
  height: 50px;
}
textarea {
  height: 200px;
}

Какой высоты будет элемент <textarea>? Правильный ответ — 50px, так как селектор по классу имеет больший приоритет, чем селектор по тегу. Но как же задать высоту в 200px и не вводить новые классы? Достаточно подставить к тегу еще и название класса:

.form-input {
  height: 50px;
}
textarea.form-input {
  height: 200px;
}

Теперь для элемента <textarea> будет установлена высота в 200px. Это произошло благодаря тому, что приоритеты «складываются» в рамках одного селектора. Для большего понимания таких сложений можно представить, что общий вес селектора определяется тремя цифрами, где:

  1. Первая цифра показывает количество идентификаторов в селекторе
  2. Вторая цифра показывает количество классов в селекторе
  3. Третья цифра показывает количество тегов в селекторе

Может звучать сложно, но концепция простая. Разберем прошлый пример:

<textarea></textarea>
.form-input {
  height: 50px;
}
textarea {
  height: 200px;
}
  • Селектор .form-input состоит из одного класса, поэтому в качестве второй цифры поставим единицу и получим: 010
  • Селектор textarea состоит из одного тега. Записываем единицу в третий разряд нашего числа: 001

Визуально понятно, что 010 > 001, поэтому свойства внутри такого правила имеют больший приоритет. Мы захотели это исправить и дополнили наш селектор:

.form-input {
  height: 50px;
}
textarea.form-input {
  height: 200px;
}

Теперь порядок сил во вселенной немного изменился:

  • Селектор .form-input состоит из одного класса, поэтому в качестве второй цифры поставим единицу и получим: 010
  • Селектор textarea.form-input состоит из одного класса и тега. Записываем единицу во второй и третий разряд нашего числа: 011

Получаем, что 010 < 011, а значит свойства внутри селектора textarea. form-input будут иметь больший приоритет.

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


Самостоятельная работа

Создайте файлы index.html и style.css на своем компьютере.

Внутри HTML расположите следующую запись:

<div>Какой-то текст</div>

и следующие CSS стили:

div {
  width: 500px;
  height: 500px;
  background: #333333;
}
#main {
  color: white;
  width: 750px;
}
.text-white {
  color: white;
}
.alert {
  height: 350px;
  color: gray;
}
div {
  background: blue;
}
.alert-warning {
  background: #000000;
  color: yellow;
}

Проанализируйте получившийся результат


Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты.

Каскадные таблицы стилей | CSS

  • Пример текста со стандартным оформлением
  • Пример текста с пользовательским оформлением

В курсе, посвящённом языку разметки HTML, были рассмотрены различные элементы, которые, по умолчанию, имели стилевое оформление: параграфы отделялись отступами, ссылки отличались цветом, заголовки различались размером текста и т.д. Будучи разработчиком можно изменять это оформление и добавлять совершенно новое. Добавить фон к тексту? Изменить размеры элементов? Создать анимацию? Всё это можно сделать с помощью CSS (англ. Cascading Style Sheets — Каскадные таблицы стилей) — языка, который определяет, как будут выглядеть HTML-элементы в браузере.

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

На примере ниже показывается вывод текста без использования своего CSS (то есть применяются те стили, которые «проставляет» браузер) и то, как можно стилизовать документ с использованием CSS.

Пример текста со стандартным оформлением

Параграфы

Параграфы создаются с помощью парного тега <p>, в тело которого помещается небольшая часть текста. Например:

<p>Первый параграф</p>
<p>Второй параграф</p>

Пример текста с пользовательским оформлением

Параграфы

Параграфы создаются с помощью парного тега <p>, в тело которого помещается небольшая часть текста. Например:

<p>Первый параграф</p>
<p>Второй параграф</p>

Теперь текст читается проще, и можно быстро отделить примеры кода от описания. В курсе будут рассмотрены базовые CSS-правила для работы с текстом и блоками, которые позволят оформить текст и визуально структурировать информацию.

Задание

Скопируйте код в редактор. Попробуйте подставлять различные значения, чтобы увидеть, как работает редактор. Тесты ожидают полную копию кода ниже.

<p>Первое изменение стиля с помощью CSS</p>

Упражнение не проходит проверку — что делать? 😶

Если вы зашли в тупик, то самое время задать вопрос в «Обсуждениях». Как правильно задать вопрос:

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

В моей среде код работает, а здесь нет 🤨

Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы разобраться с этим моментом, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.

Мой код отличается от решения учителя 🤔

Это нормально 🙆, в программировании одну задачу можно выполнить множеством способов. Если ваш код прошел проверку, то он соответствует условиям задачи.

В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.

Прочитал урок — ничего не понятно 🙄

Создавать обучающие материалы, понятные для всех без исключения, довольно сложно. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, опишите проблему в «Обсуждениях». Идеально, если вы сформулируете непонятные моменты в виде вопросов. Обычно нам нужно несколько дней для внесения правок.

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

Следующий→

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются https://github.com/hexlet-basics

Объяснение каскадной таблицы стилей для начинающих

КСС

04 января 2023 г.

Artūras B.

4min Read

CSS был разработан W3C (Консорциум World Wide Web) в 1996 году по довольно простой причине. HTML-элемент не предназначен для использования тегов, помогающих форматировать страницу. Вы должны были только написать разметку для веб-страницы.

Такие теги, как , были введены в HTML версии 3. 2 и доставили немало проблем веб-разработчикам. Из-за того, что веб-страницы имеют разные шрифты, цветной фон и несколько стилей, процесс переписывания кода был долгим, болезненным и дорогостоящим. Таким образом, CSS был создан W3C для решения этой проблемы.

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

Загрузить полную памятку по CSS

Что такое CSS?

CSS означает язык каскадных таблиц стилей и используется для стилизации элементов, написанных на языке разметки, таком как HTML. Он отделяет контент от визуального представления сайта. Отношения между HTML и CSS тесно связаны друг с другом, поскольку HTML — это сама основа сайта, а CSS — это эстетика всего веб-сайта.

Каскадные таблицы стилей в видеоуроке

Узнайте больше о CSS и о том, как он работает, посмотрев этот видеоурок.

Подпишитесь на другие обучающие видео!
Академия Хостингер

Подписаться

Преимущества CSS на веб-страницах

Разница между веб-страницей, реализующей CSS, и страницей, не использующей CSS, огромна и, безусловно, заметна.

Возможно, вы видели веб-сайт, который не загружается полностью и имеет белый цвет фона, а большая часть текста сине-черная. Это означает, что CSS-часть веб-страницы загрузилась неправильно или вообще не существует.

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

CSS позволяет вам стилизовать все в другом файле, таким образом создавая дизайн там, а затем интегрируя файлы CSS поверх разметки HTML. Это делает HTML-разметку намного чище и проще в обслуживании.

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

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

Как работает CSS?

CSS использует простой синтаксис на основе английского языка с набором управляющих им правил. Как мы упоминали ранее, HTML никогда не предназначался для использования элементов стиля, а только для разметки страницы. Он был создан, чтобы просто описать содержание. Например:

Это абзац.

.

Но как оформить абзац? Структура синтаксиса CSS довольно проста. Он имеет селектор и блок объявлений. Вы выбираете элемент, а затем объявляете, что хотите с ним сделать. Довольно просто, правда?

Однако есть правила, которые нужно помнить. Правила структуры довольно просты, так что не волнуйтесь.

Селектор указывает на элементы HTML, которые вы хотите стилизовать. Блок объявлений содержит одно или несколько объявлений, разделенных точкой с запятой.

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

Давайте рассмотрим пример:

Все элементы

будут окрашены в синий цвет и выделены полужирным шрифтом.

 <стиль>
п {
цвет синий;
вес текста: полужирный;
}
 

Дополнительные примеры см. в нашей шпаргалке по CSS.

Теперь поговорим о различных стилях CSS. Они бывают встроенными, внешними и внутренними.

Внутренние, внешние и встроенные стили CSS

Мы кратко рассмотрим каждый стиль, для подробного объяснения каждого метода будет ссылка под обзором.

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

Метод Внешний может быть наиболее удобным. Все делается извне на .css 9файл 0012. Это означает, что вы можете сделать все стили в отдельном файле и применить CSS к любой странице, которую вы хотите. Внешний стиль также может сократить время загрузки.

Наконец, мы поговорим о стиле CSS Inline . Inline работает с определенными элементами, имеющими тег