Web-fundamentals

HTML/CSS

План на сегодня 🚀

  1. HTML
  2. CSS

HTML

HyperText Markup Language

HTML

HTML элемент в общем виде

HTML

Состоит из двух тегов: открываюший и закрывающий

HTML

"tag": название тега

HTML

Аттрибуты тега

HTML

Cодержимое тега (может содержать дочерние HTML элементы)

HTML

HTML элемент может не иметь закрывающего тега (следовательно и дочерних элементов)

HTML

а также не иметь аттрибутов

HTML


                <!DOCTYPE html>
                <html lang="en">
                <head>
                  <meta charset="UTF-8">
                  <meta http-equiv="X-UA-Compatible"
                        content="IE=edge">
                  <title>Title</title>
                </head>
                <body>
                
                </body>
                </html>
            

Базовая структура (разметка) html документа

HTML


                <!DOCTYPE html>
                <html lang="en">
                <head>
                  <meta charset="UTF-8">
                  <meta http-equiv="X-UA-Compatible"
                        content="IE=edge">
                  <title>Title</title>
                </head>
                <body>
                
                </body>
                </html>
            

Объявление типа документа. Исторический артефакт

HTML


                <!DOCTYPE html>
                <html lang="en">
                <head>
                  <meta charset="UTF-8">
                  <meta http-equiv="X-UA-Compatible"
                        content="IE=edge">
                  <title>Title</title>
                </head>
                <body>
                
                </body>
                </html>
            

Элемент <html> содержит в себе всё содержимое страницы, и иногда его называют "корневой элемент"

HTML


                <!DOCTYPE html>
                <html lang="en">
                <head>
                  <meta charset="UTF-8">
                  <meta http-equiv="X-UA-Compatible"
                        content="IE=edge">
                  <title>Title</title>
                </head>
                <body>
                
                </body>
                </html>
            

Элемент <head> содержит метаинформацию.

HTML


                <!DOCTYPE html>
                <html lang="en">
                <head>
                  <meta charset="UTF-8">
                  <meta http-equiv="X-UA-Compatible"
                        content="IE=edge">
                  <title>Title</title>
                </head>
                <body>
                
                </body>
                </html>
            

Элемент <meta> устанавливает кодировку utf-8.

HTML


                <!DOCTYPE html>
                <html lang="en">
                <head>
                  <meta charset="UTF-8">
                  <meta http-equiv="X-UA-Compatible"
                        content="IE=edge">
                  <title>Title</title>
                </head>
                <body>
                
                </body>
                </html>
            

Элемент <title> устанавливает заголовок вашей страницы, который появляется во вкладке браузера

HTML


                <!DOCTYPE html>
                <html lang="en">
                <head>
                  <meta charset="UTF-8">
                  <meta http-equiv="X-UA-Compatible"
                        content="IE=edge">
                  <title>Title</title>
                </head>
                <body>
                
                </body>
                </html>
            

Элемент <body> содержит весь видимый контент

HTML


                <!DOCTYPE html>
                <html lang="en">
                <head>
                  <meta charset="UTF-8">
                  <meta http-equiv="X-UA-Compatible"
                        content="IE=edge">
                  <title>Title</title>
                </head>
                <body>
                
                </body>
                </html>
            

Вот тут, в своих потомках

HTML


                <!DOCTYPE html>
                <html lang="en">
                <head>
                  <meta charset="UTF-8">
                  <meta http-equiv="X-UA-Compatible"
                        content="IE=edge">
                  <title>Title</title>
                </head>
                <body>
                <div id="links">
                    <ul>
                      <li>
                        <a href="#">HOME</a>
                      </li>
                      <li>
                        <a href="#">BLOG</a>
                      </li>
                      <li>
                        <a href="#">CONTCT US</a>
                      </li>
                      <li>
                        <a href="#">ABOUT</a>
                      </li>
                      <li>© 2023</li>
                    </ul>
                </div>
                </body>
                </html>
            

HTML образует деревовидную структуру, называемую DOM:
Document Object Model

HTML

DOM

HTML

DOM

HTML

DOM

HTML

DOM

Для чего нужна иерархическая структура?

  • Структура ради структуры!
  • Анализ поисковыми движками
  • Навигация с клавиатуры (доступность)
  • Cкринридеры

CSS

Cascading Style Sheets

CSS


                selector {
                  prop1: "value1";
                  prop2: "value2";
                }
            

набор CSS правил в общем виде

CSS


                selector {
                  prop1: "value1";
                  prop2: "value2";
                }
            

Селектор - строка, ссылающаяся на html элементы в DOM дереве

CSS


                p {
                  prop1: "value1";
                  prop2: "value2";
                }
            

Ссылаемся на все параграфы

CSS


                p a {
                  prop1: "value1";
                  prop2: "value2";
                }
            

Ссылаемся на все ссылки внутри параграфов

CSS


                p, a {
                  prop1: "value1";
                  prop2: "value2";
                }
            

Ссылаемся на все ссылки и на все параграфы

CSS


                selector {
                  prop1: "value1";
                  prop2: "value2";
                }
            

Более подробное построение селекторов мы рассмотрим далее

CSS


                selector {
                  prop1: "value1";
                  prop2: "value2";
                }
            

Объявление свойства

CSS


                selector {
                  prop1: "value1";
                  prop2: "value2";
                }
            

Объявление свойства

CSS


                p {
                  color: "white";
                  prop2: "value2";
                }
            

Например таким образом мы задаем белый цвет текста всем параграфам

CSS


                p {
                  color: "white";
                  text-align: "right";
                }
            

А также выравнивание по правому краю

CSS


                selector1 {
                  prop1: "value1";
                  prop2: "value2";
                }

                selector2 {
                  prop1: "value1";
                  prop2: "value2";
                }
            

Несколько наборов CSS правил

CSS


                selector1 {
                  prop1: "value1";
                  prop2: "value2";
                }

                selector2 {
                  prop1: "value1";
                  prop2: "value2";
                }
            

Несколько наборов CSS правил

CSS/HTML

Блочные элементы

                  
                  

Lorem ipsum dolor sit amet consectetur, adipisicing elit. Debitis nemo assumenda soluta iste obcaecati aliquid quibusdam blanditiis tenetur distinctio perspiciatis! Repellat nam vitae omnis impedit, ab commodi minus debitis quisquam.


                /* css */
                /* empty for now */
              

Lorem ipsum dolor sit amet consectetur, adipisicing elit. Debitis nemo assumenda soluta iste obcaecati aliquid quibusdam blanditiis tenetur distinctio perspiciatis! Repellat nam vitae omnis impedit, ab commodi minus debitis quisquam.

Блочная модель/Модель коробки

CSS/HTML

Блочные элементы

                  
                  

Lorem ipsum dolor sit amet consectetur, adipisicing elit. Debitis nemo assumenda soluta iste obcaecati aliquid quibusdam blanditiis tenetur distinctio perspiciatis! Repellat nam vitae omnis impedit, ab commodi minus debitis quisquam.


                /* css */
                p {
                  border: 3px dashed red;
                }
              

Lorem ipsum dolor sit amet consectetur, adipisicing elit. Debitis nemo assumenda soluta iste obcaecati aliquid quibusdam blanditiis tenetur distinctio perspiciatis! Repellat nam vitae omnis impedit, ab commodi minus debitis quisquam.

CSS/HTML

Блочные элементы

                  
                  

Lorem ipsum dolor sit amet consectetur, adipisicing elit. Debitis nemo assumenda soluta iste obcaecati aliquid quibusdam blanditiis tenetur distinctio perspiciatis! Repellat nam vitae omnis impedit, ab commodi minus debitis quisquam.


                /* css */
                p {
                  border: 3px dashed red;
                }
              

Lorem ipsum dolor sit amet consectetur, adipisicing elit. Debitis nemo assumenda soluta iste obcaecati aliquid quibusdam blanditiis tenetur distinctio perspiciatis! Repellat nam vitae omnis impedit, ab commodi minus debitis quisquam.

  • border: задаем границу

CSS/HTML

Блочные элементы

                  
                  

Lorem ipsum dolor sit amet consectetur, adipisicing elit. Debitis nemo assumenda soluta iste obcaecati aliquid quibusdam blanditiis tenetur distinctio perspiciatis! Repellat nam vitae omnis impedit, ab commodi minus debitis quisquam.


                /* css */
                p {
                  border: 3px dashed red;
                  margin: 40px;
                }
              

Lorem ipsum dolor sit amet consectetur, adipisicing elit. Debitis nemo assumenda soluta iste obcaecati aliquid quibusdam blanditiis tenetur distinctio perspiciatis! Repellat nam vitae omnis impedit, ab commodi minus debitis quisquam.

CSS/HTML

Блочные элементы

                  
                  

Lorem ipsum dolor sit amet consectetur, adipisicing elit. Debitis nemo assumenda soluta iste obcaecati aliquid quibusdam blanditiis tenetur distinctio perspiciatis! Repellat nam vitae omnis impedit, ab commodi minus debitis quisquam.


                /* css */
                p {
                  border: 3px dashed red;
                  margin: 40px;
                }
              

Lorem ipsum dolor sit amet consectetur, adipisicing elit. Debitis nemo assumenda soluta iste obcaecati aliquid quibusdam blanditiis tenetur distinctio perspiciatis! Repellat nam vitae omnis impedit, ab commodi minus debitis quisquam.

  • margin: задаем внешние отступы

CSS/HTML

Блочные элементы

                  
                  

Lorem ipsum dolor sit amet consectetur, adipisicing elit. Debitis nemo assumenda soluta iste obcaecati aliquid quibusdam blanditiis tenetur distinctio perspiciatis! Repellat nam vitae omnis impedit, ab commodi minus debitis quisquam.


                /* css */
                p {
                  border: 3px dashed red;
                  margin: 40px;
                  padding: 40px;
                }
              

Lorem ipsum dolor sit amet consectetur, adipisicing elit. Debitis nemo assumenda soluta iste obcaecati aliquid quibusdam blanditiis tenetur distinctio perspiciatis! Repellat nam vitae omnis impedit, ab commodi minus debitis quisquam.

CSS/HTML

Блочные элементы

                  
                  

Lorem ipsum dolor sit amet consectetur, adipisicing elit. Debitis nemo assumenda soluta iste obcaecati aliquid quibusdam blanditiis tenetur distinctio perspiciatis! Repellat nam vitae omnis impedit, ab commodi minus debitis quisquam.


                /* css */
                p {
                  border: 3px dashed red;
                  margin: 40px;
                  padding: 40px;
                }
              

Lorem ipsum dolor sit amet consectetur, adipisicing elit. Debitis nemo assumenda soluta iste obcaecati aliquid quibusdam blanditiis tenetur distinctio perspiciatis! Repellat nam vitae omnis impedit, ab commodi minus debitis quisquam.

  • padding: задаем внутренние отступы

CSS/HTML

Блочные элементы

                  
                  

Lorem ipsum dolor sit amet consectetur, adipisicing elit. Debitis nemo assumenda soluta iste obcaecati aliquid quibusdam blanditiis tenetur distinctio perspiciatis! Repellat nam vitae omnis impedit, ab commodi minus debitis quisquam.


                /* css */
                p {
                  border: 3px dashed red;
                  margin: 40px;
                  padding: 40px;
                }
              

Lorem ipsum dolor sit amet consectetur, adipisicing elit. Debitis nemo assumenda soluta iste obcaecati aliquid quibusdam blanditiis tenetur distinctio perspiciatis! Repellat nam vitae omnis impedit, ab commodi minus debitis quisquam.

Итого:

  • border: задаем границу
  • margin: задаем внешние отступы
  • padding: задаем внутренние отступы

CSS/HTML

Блочные элементы

                  
                  

Lorem ipsum dolor sit amet consectetur, adipisicing elit.

Lorem ipsum dolor sit amet consectetur, adipisicing elit.


                /* css */
                p {
                  border: 3px dashed red;
                  margin: 30px;
                  padding: 20px;
                }
              

Lorem ipsum dolor sit amet consectetur, adipisicing elit.

Lorem ipsum dolor sit amet consectetur, adipisicing elit.

Несколько параграфов друг за другом. Эффект схлопывания внешних отступов

CSS/HTML

Блочные элементы

                  
                  

Lorem ipsum dolor sit amet consectetur, adipisicing elit.

Lorem ipsum dolor sit amet consectetur, adipisicing elit.


                /* css */
                p {
                  border: 3px dashed red;
                  margin: 30px;
                  padding: 20px;
                }
              

Lorem ipsum dolor sit amet consectetur, adipisicing elit.

Lorem ipsum dolor sit amet consectetur, adipisicing elit.

Основные свойства блочных элементов

  • Блоки располагаются по вертикали друг под другом.
  • На прилегающих сторонах элементов действует эффект схлопывания отступов.
  • Запрещено вставлять блочный элемент внутрь строчного. Например, <a><h1>Заголовок</h1></a> не пройдёт валидацию, правильно вложить теги наоборот — <h1><a>Заголовок</a></h1>.
  • По ширине блочные элементы занимают всё допустимое пространство.
  • Если задана ширина контента (свойство width), то ширина блока складывается из значений width, полей, границ, отступов слева и справа. (есть нюанс, смотри свойство box-sizing: border-box )
  • Высота блочного элемента вычисляется браузером автоматически, исходя из содержимого блока.
  • Если задана высота контента (свойство height), то высота блока складывается из значения height, полей, границ, отступов сверху и снизу. При превышении указанной высоты контент отображается поверх блока. (есть нюанс, смотри свойство box-sizing: border-box )
  • На блочные элементы не действуют свойства, предназначенные для строчных элементов, вроде vertical-align.
  • Текст по умолчанию выравнивается по левому краю.
htmlbook

CSS/HTML

Строчные элементы

                  
                  

                /* css */
                /* empty for now */
              

CSS/HTML

Строчные элементы

                  
                  

                /* css */
                /* empty for now */
              

Добавим еще один элемент

CSS/HTML

Строчные элементы

                  
                  

                /* css */
                /* empty for now */
              

И еще один элемент

CSS/HTML

Строчные элементы

                  
                  

                /* css */
                /* empty for now */
              

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

CSS/HTML

Строчные элементы

                  
                  

                /* css */
                /* empty for now */
              

Рассмотрим свойство vertical-align

CSS/HTML

Строчные элементы

                  
                  

                /* css */
                img {
                  vertical-align: middle;
                }
              

vertical-align: middle

CSS/HTML

Строчные элементы

                  
                  

                /* css */
                img {
                  vertical-align: top;
                }
              

vertical-align: top

CSS/HTML

Строчные элементы

                  
                  

                /* css */
                img {
                  vertical-align: bottom;
                }
              

vertical-align: bottom

CSS/HTML

Строчные элементы

                /* css */
                img, a {
                  vertical-align: middle;
                }
              

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

CSS/HTML

Строчные элементы

                  
                  

Lorem ipsum dolor sit amet consectetur adipisicing elit. Maxime dicta iusto quidem necessitatibus natus aut voluptas quia, aperiam, quas mollitia nostrum dolores sunt molestias doloribus fugit nesciunt alias. Quidem, sint!


                /* css */
                /* empty for now */
              

Lorem ipsum dolor sit amet consectetur adipisicing elit. Maxime dicta iusto quidem necessitatibus natus aut voluptas quia, aperiam, quas mollitia nostrum dolores sunt molestias doloribus fugit nesciunt alias. Quidem, sint!

Текст со ссылками a

CSS/HTML

Строчные элементы

                  
                  

Lorem ipsum dolor sit amet consectetur adipisicing elit. Maxime dicta iusto quidem necessitatibus natus aut voluptas quia, aperiam, quas mollitia nostrum dolores sunt molestias doloribus fugit nesciunt alias. Quidem, sint!


                /* css */
                /* empty for now */
              

Lorem ipsum dolor sit amet consectetur adipisicing elit. Maxime dicta iusto quidem necessitatibus natus aut voluptas quia, aperiam, quas mollitia nostrum dolores sunt molestias doloribus fugit nesciunt alias. Quidem, sint!

Текст с тегами span

CSS/HTML

Строчные элементы

                  
                  

Lorem ipsum dolor sit amet consectetur adipisicing elit. Maxime dicta iusto quidem necessitatibus natus aut voluptas quia, aperiam, quas mollitia nostrum dolores sunt molestias doloribus fugit nesciunt alias. Quidem, sint!


                /* css */
                /* empty for now */
              

Lorem ipsum dolor sit amet consectetur adipisicing elit. Maxime dicta iusto quidem necessitatibus natus aut voluptas quia, aperiam, quas mollitia nostrum dolores sunt molestias doloribus fugit nesciunt alias. Quidem, sint!

На самом деле вот они

CSS/HTML

Строчные элементы

                  
                  

Lorem ipsum dolor sit amet consectetur adipisicing elit. Maxime dicta iusto quidem necessitatibus natus aut voluptas quia, aperiam, quas mollitia nostrum dolores sunt molestias doloribus fugit nesciunt alias. Quidem, sint!


                /* css */
                p span {
                  border: 3px dashed red;
                }
              

Lorem ipsum dolor sit amet consectetur adipisicing elit. Maxime dicta iusto quidem necessitatibus natus aut voluptas quia, aperiam, quas mollitia nostrum dolores sunt molestias doloribus fugit nesciunt alias. Quidem, sint!

Зададим собственную границу для видимости

CSS/HTML

Строчные элементы

                  
                  

Lorem ipsum dolor sit amet consectetur adipisicing elit. Maxime dicta iusto quidem necessitatibus natus aut voluptas quia, aperiam, quas mollitia nostrum dolores sunt molestias doloribus fugit nesciunt alias. Quidem, sint!


                /* css */
                p span {
                  border: 3px dashed red;
                  color: blue;
                }
              

Lorem ipsum dolor sit amet consectetur adipisicing elit. Maxime dicta iusto quidem necessitatibus natus aut voluptas quia, aperiam, quas mollitia nostrum dolores sunt molestias doloribus fugit nesciunt alias. Quidem, sint!

А также поменяем цвет

CSS/HTML

Строчные элементы

                  
                  

                /* css */
                /* empty for now */
              

Основные свойства строчных элементов

  • Внутрь строчных элементов допустимо помещать текст или другие строчные элементы. Вставлять блочные элементы внутрь строчных запрещено.
  • Эффект схлопывания отступов не действует.
  • Свойства, связанные с размерами (width, height) не применимы.
  • Ширина равна содержимому плюс значения отступов, полей и границ.
  • Несколько строчных элементов идущих подряд располагаются на одной строке и переносятся на другую строку при необходимости.
  • Можно выравнивать по вертикали с помощью свойства vertical-align.
htmlbook

CSS/HTML

Примеры

                  
                  

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit


                /* css */
                /* empty for now */
              

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

CSS/HTML

Примеры

                  
                  

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit


                /* css */
                p {
                  color: red;
                }
              

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Все параграфы имеют красный цвет

CSS/HTML

Примеры

                  
                  

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit


                /* css */
                p {
                  color: red;
                  font-style: italic;
                }
              

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

а также курсивное начертание

CSS/HTML

Примеры

                  
                  

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit


                /* css */
                article p {
                  color: red;
                  font-style: italic;
                }
              

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Ссылаемся на все параграфы внутри тега <article>

CSS/HTML

Примеры

                  
                  

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit


                /* css */
                div > p {
                  color: red;
                  font-style: italic;
                }
              

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Ссылаемся на все параграфы внутри тега <div>, на первом уровне вложенности

Есть ли способо сослаться на конкретный html элемент?

CSS/HTML

Примеры

                  
                  

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit


                /* css */
                #my-id {
                  color: red;
                  font-style: italic;
                }
              

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Да. Через аттрибут id

id должны быть уникальными в рамках html страницы

CSS/HTML

Примеры

                  
                  

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit


                /* css */
                *[id="my-id"] {
                  color: red;
                  font-style: italic;
                }
              

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

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

CSS/HTML

Примеры

                  
                  

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit


                /* css */
                .my-class {
                  color: red;
                  font-style: italic;
                }
              

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Сослаться на все элементы определенного "класса". Нет ограничения на уникальность

CSS/HTML

Примеры

                  
                  

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit


                /* css */
                *[class="my-class"] {
                  color: red;
                  font-style: italic;
                }
              

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Lorem ipsum dolor sit amet consectetur adipisicing elit

Эквивалент

CSS/HTML

Примеры

                  
                  

                /* css */
                /* empty for now */
              

CSS/HTML

Примеры

                  
                  

                /* css */
                .figures {
                  padding: 20px;
                  border: 3px dashed blue;
                }

                .figures > * {
                  border: 3px solid red;
                  margin: 10px auto;
                }

                .figures .circle {
                  width: 40px;
                  height: 40px;
                  border-radius: 50%;
                }
                
                .figures .rectangle {
                  width: 70px;
                  height: 40px;
                }
              

Теперь мы можем переиспользовать разметку

CSS/HTML

Примеры

                  
                  

                /* css */
                .figures {
                  padding: 20px;
                  border: 3px dashed blue;
                }

                .figures > * {
                  border: 3px solid red;
                  margin: 10px auto;
                }

                .figures .circle {
                  width: 40px;
                  height: 40px;
                  border-radius: 50%;
                }
                
                .figures .rectangle {
                  width: 70px;
                  height: 40px;
                }
              

Просто добавим еще один блок с фигурами

CSS/HTML

Каскад

                  
                  

Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet


                /* css */
                p {
                  color: blue;
                  font-style: italic;
                  text-decoration: underline;
                }
              

Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet

CSS/HTML

Каскад

                  
                  

Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet


                /* css */
                article p {
                  color: red;
                }

                p {
                  color: blue;
                  font-style: italic;
                  text-decoration: underline;
                }
              

Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet

Коллизия по цвету параграфов в каскаде. Применяется свойство, чей селектор более специфичен

CSS/HTML

Каскад

                  
                  

Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet


                /* css */
                article p {
                  color: red;
                }

                p {
                  color: blue !important;
                  font-style: italic;
                  text-decoration: underline;
                }
              

Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet

Повышаем специфичность используя !important. Используйте только когда это действительно нужно

продолжение следует ...

Полезные материалы по HTML/CSS: