CSS для начинающих

Источник

Введение в CSS

Cascading Style Sheets (CSS) — каскадные таблицы стилей, которые позволяют оформлять содержимое страницы в соответствии с описанными правилами. Стили текста, расположение блоков на странице, анимация — всё это описывается с помощью каскадных таблиц стилей.

1. Каскадные таблицы стилей

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

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

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

Вывод текста без использования CSS и с использованием CSS

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

Задание

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

<p style="font-size: 25px;">Первое изменение стиля с помощью CSS</p>

Контент

2. Использование CSS в HTML

CSS: Использование CSS в HTML

Указывать стили для тега HTML возможно с помощью атрибута style, внутри которого указываются правила, которые будут применены к тегу. Все CSS-стили записываются следующим образом: название стиля: значение;. Такую запись называют «инлайн» (inline), что означает запись правила в одну строку с использованием атрибута style.

Один из основных способов «попробовать» стили — работа с текcтом. CSS позволяет оформлять текст множеством способов: увеличивать размер шрифта, определять начертание, насыщенность и так далее. Все основные правила для работы с текстом рассматриваются во втором модуле данного курса.

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


<p style="font-size: 32px;">Большой текст</p>

Большой текст


Задание

Добавьте в редактор тег <p></p> и, используя атрибуты, установите размер шрифта в 12 пикселей.

3. Наследование стилей

CSS: Наследование стилей

При использовании стилей в CSS часто затрагивается не только тот тег, для которого указаны стили, но и вложенные в него теги. Такие стили называются наследуемые. Стиль font-size из прошлого урока является наследуемым — он применится ко всем вложенным тегам.


<div style="font-size: 20px;">
    Размер шрифта, которым написан этот текст — 20 пикселей.

    <p>Вложенный параграф также будет иметь размер шрифта 20 пикселей.</p>
</div>

Размер шрифта, которым написан этот текст — 20 пикселей.Вложенный параграф также будет иметь размер шрифта 20 пикселей.


Помимо стилей, которые наследуются для всех вложенных тегов, в CSS есть множество стилей, которые уникальны для того элемента, к которому их применили.

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

<div style="border: solid 1px;">
    У блока появится рамка шириной 1 пиксель

    <p>А у параграфа рамки не будет. При необходимости она устанавливается отдельно</p>
</div>

Задание

Добавьте в редактор тег <div></div> и, используя атрибуты, установите размер шрифта в 20 пикселей. Внутри тега div вложите тег p с размером шрифта 10 пикселей.

4. Тег style

CSS: Тег style

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

Вторая проблема — исправление стилей. Для этого необходимо сначала найти нужный элемент в коде, а потом отредактировать его стили. Таких элементов на странице может быть 10, 20, 100. А для одноимённых тегов придётся записывать стили отдельно для каждого элемента.

Возникает естественное желание иметь все стили в одном месте, где можно было бы их быстро редактировать. Таким решением является использование тега style, внутри которого могут располагаться все необходимые стили.

Возьмём пример из прошлого урока:

<div style="font-size: 20px;">
  Этот текст будет с размером шрифта 20 пикселей

  <p>Вложенный параграф также будет иметь размер шрифта 20 пикселей</p>
</div>

Чтобы избавиться от атрибутов, добавим тег style и укажем, что для тега div используется шрифт размером в 20 пикселей.

<style>
  div {
    font-size: 20px;
  }
</style>

<div>
  Этот текст будет с размером шрифта 20 пикселей

  <p>Вложенный параграф также будет иметь размер шрифта 20 пикселей</p>
</div>

Таким же образом можно указать, что у параграфа будет размер шрифта 10 пикселей.

<style>
  div {
    font-size: 20px;
  }

  p {
    font-size: 10px;
  }
</style>

<div>
  Этот текст будет с размером шрифта 20 пикселей

  <p>Вложенный параграф будет иметь размер шрифта 10 пикселей</p>
</div>

Задание

Добавьте в редактор параграф и, используя тег style, установите размер шрифта в 10 пикселей.

5. Базовые стили тегов

CSS: Базовые стили тегов

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

К примеру, по умолчанию браузеры выводят заголовок <h1></h1> с размером шрифта 24 пикселя.

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

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

Задание

Добавьте в редактор тег h1 и установите размер шрифта в 20 пикселей. Стили запишите в теге style.

6. Классы 

CSS: Классы

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

Чтобы задать стиль для класса в CSS используется селектор .название-класса. Обратите внимание на точку — именно так браузер понимает, что данный стиль указывается для класса.

// HTML
<p class="paragraph">Текст нашего параграфа. Именно с помощью класса paragraph в CSS будут устанавливаться свойства для этого блока текста</p>
/* CSS */
.paragraph {
  color: #333333;
  /* Правило color устанавливает цвет текста. В данном случае — это серый цвет со значением #333333 */
}

Так как классов с одинаковым именем на странице может быть много, то это правило сработает для всех элементов, у которых атрибут класс равен paragraph.

Задание

В редакторе добавьте параграф с классом news и укажите для него цвет текста #553333. Стили подключите с помощью тега style.

7. Селекторы 

CSS: Селекторы

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

<p class="text-bold">Жирный текст внутри параграфа</p>
<div class="text-bold">Ещё один текст внутри простого блочного элемента. Так как у него тоже есть класс text-bold, то он будет с жирным начертанием</div>
.text-bold {
  font-weight: bold;
}

Свойство font-weight со значением bold установит жирное начертание текста. С этим свойством вы подробнее познакомитесь при изучении оформления текста. Сейчас самое главное — этот стиль будет применён и к параграфу, и к блочному элементу div, так как они имеют один и тот же класс.

Помимо селекторов по классу существует ещё несколько основных селекторов. Отличительным признаком элемента является тег, которым он обрамлён. В CSS есть возможность задать стили непосредственно для тега. В этом нам поможет селектор по тегу. Для его использования достаточно указать тег, к которому нужно обратиться.

<h1>Заголовок, к которому применяются правила</h1>
h1 {
  font-size: 28px;
}

В этом примере для заголовка первого уровня указано свойство font-size, которое отвечает за размер шрифта. Важно отметить, что селектор по тегу добавит стили для всех указанных тегов, которые встретятся на странице. Зачастую это плохой подход, так как разные элементы могут иметь разные стили даже при использовании одинаковых тегов. Используйте селектор по тегу для описания общих стилей проекта. Например, для указания стилей заголовков. Заголовки зачастую одинаковые для всего проекта, поэтому их стили можно указать в селекторе по тегу.

Ещё одним способом указать стили является использование селектора по идентификатору. Используя атрибут id, можно указать уникальное имя для любого элемента на странице. Если данное имя указано, то к элементу возможно обратиться используя селектор по идентификатору. Чтобы указать стили для элемента с идентификатором используется конструкция #имя_идентификатора.

<p id="red">Красный параграф</p>
#red {
  color: red;
}

Задание

В редакторе создайте параграф с идентификатором red и классом bold. Установите следующие свойства:
* Для идентификатора red установите красный цвет текста.
* Для класса bold установите жирное начертание текста.

Стили текста

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

8. Цвета 

CSS: Цвета

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

Для выделения текста цветом используется свойство color, значением которого может быть цвет в формате HEX (шестнадцатеричное представление цветового пространства RGB). Например, белый обозначается #ffffff, а чёрный #000000.

<p><span class="info">Внимание!</span> Важная информация</p>
.info {
  color: #5263f3;
}

Внимание! Важная информация

Для выбора цвета можно воспользоваться множеством различных инструментов: от встроенных в браузер, до встроенных в текстовые редакторы. Также существует множество сайтов, где можно выбрать необходимый цвет. Например HTML Color Codes.

Задание

В редакторе добавьте элемент span с классом violet и установите для него цвет равный #9400D3. Для подключения стилей воспользуйтесь тегом style.

9. Выравнивание текста

CSS: Выравнивание текста

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


Заголовок, расположенный по центру

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


CSS позволяет выровнять текст, используя свойство text-align с тремя основными значениями:

  • left — по левому краю. Используется по умолчанию.
  • center — по центру.
  • right — по правому краю.
<p class="left">Текст по левому краю</p>
<p class="center">Текст по центру</p>
<p class="right">Текст по правому краю</p>
.left {
  text-align: left;
}

.center {
  text-align: center;
}

.right {
  text-align: right;
}

Текст по левому краю

Текст по центру

Текст по правому краю

Задание

Добавьте в редактор параграф с классом important и выровняйте его по центру. Стили укажите в теге style.

10. Размер шрифта 

CSS: Размер шрифта

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

Например, по умолчанию заголовки h1, h2, h3 имеют больший размер шрифта, чем основной текст.

Для определения размера шрифта используется свойство font-size.

<p class="warning">Внимание!</p>
.warning {
  font-size: 24px;
}

Задание

Добавьте в редактор параграф с классом big и установите размер шрифта в 60 пикселей. Стили добавьте в тег style.

11. Насыщенность шрифта

CSS: Насыщенность шрифта

CSS позволяет гибко настраивать насыщенность шрифта. Это помогает выделять важные фразы в тексте, не изменяя при этом размер шрифта. Для управления насыщенностью шрифта используется правило font-weight, у которого в качестве значения чаще всего выступают параметры normal, устанавливающий стандартную насыщенность шрифта, и bold, устанавливающий жирное начертание шрифта (эффект похож на использование тегов strong и b в HTML).

<p class="bold">Текст с жирным начертанием шрифта</p>
.bold {
  font-weight: bold;
}

Текст с жирным начертанием шрифта

В качестве значения свойства font-weight могут использоваться 100, 200, 300, 400, 500, 600, 700, 800, 900. Работоспособность данных значений зависит от шрифта, который используется в документе.

Если создатели шрифта добавили необходимые варианты, то они будут работать с использованием правила font-weight.

Текстовые значения свойства соотносятся с числовыми следующим образом:

  • 400 — normal
  • 700 — bold

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

В таком случае для большинства стандартных шрифтов значения от 100 до 500 будут приравнены к normal, а от 600 до 900 к bold.

Задание

Добавьте в редактор параграф с классом weight и установите насыщенность bold . Стили добавьте в тег style.

12. Курсив 

CSS: Курсив

Для выделения цитат или терминов часто используют курсивное написание. Для этих целей в CSS существует правило font-style, имеющее три значения:

  • normal — обычный вывод текста.
  • italic — курсивное начертание
  • oblique — косое начертание

Можно заметить, что значения italic и oblique вывелись одинаковым образом. Почему? Дело в том, что при значении italic в шрифте, который используется на странице, ищутся специальные курсивные символы, а при значении oblique берётся текущий шрифт и наклоняется.

Если в шрифте отсутствуют символы, необходимые для italic, то автоматически правило ведёт себя также, как и oblique, в связи с чем italic является распространённым вариантом использования свойства font-style.


<p class="italic">Курсивный текст</p>
.italic {
  font-style: italic;
}

Курсивный текст

Задание

Добавьте в редактор параграф с классом italic-type и установите начертание oblique . Стили добавьте в тег style.

13. Капитель 

CSS: Капитель

Капитель — вид строчных букв, размер которых совпадает (или приближен) к размеру заглавных букв.

Часто такое написание используется как стилистический приём. Но также имеется практическая сторона капители — ею принято обозначать аббревиатуры, а также зачастую её используют в первых строчках произведения, чтобы читателю было проще «войти» в текст после заголовка.

Для установки капители используется свойство font-variant с одним из двух основных значений:

  • normal — нормальное написание текста
  • small-caps — капитель

Задание

Добавьте в редактор параграф с классом small-capitals и выведите текст внутри капителью. Стили добавьте в тег style.

14. Горизонтальная черта (подчеркивание, зачеркивание, надчеркивание)

CSS: Горизонтальная черта

Для усиления текста часто используется подчёркивание. Оно показывает важность текущего слова или текста (часто его ещё используют для указания ссылок в документе). Другим средством стилизации текста является перечёркивание, показывающее неправильный участок текста (например, вот так не делать).

Для такого оформления используется свойство text-decoration с тремя основными свойствами:

  • underline — Подчёркивание текста
  • line-through — Перечёркивание текста
  • overline — Надчёркивание текста

Чтобы отменить подчёркивание у ссылок используется значение text-decoration: none;.

Задание

Добавьте в редактор параграф с классом line и добавьте подчёркивание текста для него. Стили добавьте в тег style.

15. Межстрочный интервал

CSS: Межстрочный интервал

Межстрочный интервал (интерлиньяж) — важный пункт при работе с текстом. Данный параметр определяет, сколько пространства будет между строчками.

Заметьте, что левый текст труднее читать. Это связано с тем, что глаза не «цепляются» за строку и взгляд постоянно переходит с одной строки на другую и обратно.

Для установки межстрочного расстояния используется правило line-height. В качестве значения используется число.

Задание

Добавьте в редактор параграф с классом line-height с размером шрифта 24 пикселя и межстрочным интервалом 36 пикселей. Стили добавьте в тег style.

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

16. Шрифт 

CSS: Шрифт

Многим знакома фраза «Поиграйся со шрифтами» — великая мантра, когда внешний вид текста не устраивает. Для того, чтобы указать шрифт, используется правило font-family, позволяющее выбрать один или несколько шрифтов, которые будут использоваться в документе.

<style>
  .new-font {
    font-family: Arial, Futura;
  }
</style>

<p class="new-font">Абзац</p>

Шрифты подключаются из тех, которые установлены в вашей системе. По этой причине стоит выбирать «распространённые шрифты», так как у другого пользователя их может не быть. Помимо этого возможно подключать шрифты со сторонних сервисов, таких как Google Fonts, или загружать их непосредственно на ваш сервер, на котором расположен сайт.

Наиболее распространёнными шрифтами являются:
* Times New Roman
* Arial
* Tahoma
* Verdana
* Courier New

С большей долей вероятности эти шрифты будут установлены и в системе у другого пользователя. Если шрифтов, указанных в свойстве font-family, на компьютере нет, то будет использован шрифт по умолчанию, заданный в настройках браузера.

При подключении стилей хорошей практикой является добавление универсального семейства шрифта в правило font-family. Таких семейств на данный момент 5:

  • serif — шрифты с засечками (антиквы). Ярким представителем таких шрифтов является Times New Roman.
  • sans-serif — шрифты без засечек (гротеск). Наиболее знакомыми такими шрифтами являются Arial и Verdana.
  • cursive — курсивные шрифты.
  • fantasy — декоративные шрифты. Это семейство используется реже всего. Дело в том, что декоративные шрифты слишком разные, чтобы они были взаимозаменяемые.
  • monospace — моноширинные шрифты. К ним относятся шрифты, в которых все символы имеют одинаковую ширину. Очень часто их используют программисты в текстовых редакторах.

Добавив универсальное семейство шрифта в правило font-family, мы страхуем себя от того, что у пользователя не окажется такого шрифта, который мы указали. Тогда браузер автоматически выберет ему замену из того универсального семейства шрифтов, которое мы указали.

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

<style>
  .new-font {
    font-family: Arial, Futura, sans-serif;
  }
</style>

<p class="new-font">Абзац</p>

Теперь, если у пользователя в системе нет шрифтов Arial или Futura, будет выбран системный шрифт без засечек.

Задание

Добавьте в редактор параграф с классом verdana-text и установите для него шрифт Verdana. Стили запишите в теге style. Не забудьте указать универсальное семейство шрифтов. В данном случае это шрифты без засечек.

17. Обобщённое правило для шрифтов

CSS: Обобщённое правило для шрифтов

Удобным способом задать свойства для шрифта является использование правила font, которое позволяет указать:

  • font-style
  • font-variant
  • font-weight
  • font-size / line-height (эти два правила записываются через слэш)
  • font-family

Шесть разных правил внутри одного! Это помогает сократить CSS код и улучшить его читабельность. Обязательными из них являются font-size и font-family. Остальные можно не указывать.

Предположим, что нам нужен жирный курсив с размером шрифта 24 пикселя из семейства шрифтов Arial, тогда правило в CSS будет выглядеть следующим образом:

font: italic bold 24px Arial;
Жирный курсив с размером шрифта 24 пикселя из семейства Arial

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

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

font: italic bold 24px Arial, sans-serif;

Задание

Добавьте в редактор параграф с классом bold-text и установите для него жирное начертание. Размер шрифта 24 пикселя. Шрифт Verdana. Стили запишите в теге style. Не забудьте указать универсальное семейство шрифтов. В данном случае это шрифты без засечек.

18. Базовые правила типографики

CSS: Базовые правила типографики

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

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

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

  • Используйте стандартные шрифты

Лучший выбор при использовании шрифтов — стандартные шрифты. Например ArialVerdanaTahomaTimes New Roman и так далее. Большинство из этих шрифтов уже есть в компьютере пользователей, они привычны и легко читаются.

Избегайте причудливых шрифтов (например Comic Sans). При всей их «весёлости», трудно читать большие тексты, написанные с использованием таких шрифтов.

  • Используйте не больше двух шрифтов на странице

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

  • Используйте достаточный размер шрифта

Это понятие двойственное, но не следует использовать основной текст со шрифтом меньше 14 пикселей. Если размер шрифта будет меньше, то чтение с мобильных устройств будет пыткой.

  • Используйте достаточный межстрочный интервал

Самым распространённым межстрочным интервалом является значение в 150% от размера шрифта. Если текст размером 14 пикселей, то межстрочный интервал желательно установить не менее 21 пикселя.

  • Выравнивайте текст по левому краю

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

Задание

Попробуйте применить различные правила типографики в редакторе. Задания в этом уроке нет 🙂 Можете нажимать кнопку проверить.

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

При работе с CSS используют не только оформление текстов, но и оформление блоков.

19. Рамки

CSS: Рамки

Отделить несколько блоков друг от друга позволяют рамки. CSS правило border «рисует» вокруг блока границу с заданным цветом. Для этого принимаются 3 значения:

  • ширина границы;
  • тип границы;
  • цвет границы.

Наиболее распространёнными типами рамок являются:

<style>
  .border-dotted {
    border: 1px dotted #000;
  }
</style>

<div class="border-dotted">
    Блок с пунктирной рамкой и чёрным цветом
</div>

Задание

Добавьте в редактор div с классом border-bold и установите сплошную границу толщиной 5 пикселей. Цвет рамки #2196F3. Стили запишите в теге style.

20. Фон 

CSS: Фон

Наиболее частый способ отделить различные смысловые области на странице — установка фона. Обратите внимание, область с текстом в этом уроке отделена от остального сайта белым фоном. Это делается не только для удобного чтения, но и для того, чтобы глаза быстро находили область с текстом.

Для установки фона блоку используется свойство background-color, значением которого является цвет фона.

<style>
  .gray-background {
    background-color: #cccccc;
  }
</style>

<div class="gray-background">
    Текст, который будет выведен на сером фоне
</div>

Задание

Добавьте в редактор div с классом background и установите цвет фона #2196F3. Стили запишите в теге style.

21. Внутренние отступы

CSS: Внутренние отступы

Взгляните на пример из прошлого урока. Мы вывели текст на сером фоне, при этом он «приклеен» к блоку, в котором размещается.

Текст, который будет выведен на сером фоне

Для того, чтобы дать больше пространства тексту, используются внутренние отступы. Внутренний отступ указывается с помощью правила padding, которое может принимать 4 значения:

  • отступ сверху;
  • отступ справа;
  • отступ снизу;
  • отступ слева.
<style>
  .gray-background {
    background-color: #cccccc;
    padding: 20px 20px 20px 20px;
  }
</style>

<div class="gray-background">
    Текст, который будет выведен на сером фоне с отступами по 20 пикселей с каждой стороны.
</div>
Текст, который будет выведен на сером фоне с отступами по 20 пикселей с каждой стороны.

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

  • Если указать два значения, то первое будет использоваться для отступов по вертикали (сверху и снизу), а второе по горизонтали (справа и слева).
  • Если указать только одно значение, то оно будет использовано одновременно для всех сторон.
  • Если указать три значения, то они будут использоваться для отступа сверху, по горизонтали и снизу.

Таким образом можно пример выше записать следующим образом:

<style>
  .gray-background {
    background-color: #cccccc;
    padding: 20px;
  }
</style>

<div class="gray-background">
    Текст, который будет выведен на сером фоне с отступами по 20 пикселей с каждой стороны.
</div>

Задание

Добавьте в редактор div с классом padding и установите внутренние отступы:
* 10 пикселей сверху,
* 15 пикселей снизу,
* 20 пикселей слева и справа.

Добавьте черный фон к блоку. Попробуйте различные значения свойства padding для того, чтобы увидеть как это влияет на блок.

Стили запишите в теге style.

22. Внешние отступы

CSS: Внешние отступы

Если расположить два блока (divarticlesection и так далее) друг под другом, то между ними не будет отступов. Это усложняет ориентирование на странице, так как между такими блоками может не быть визуальной разницы (особенно, если они имеют одинаковое значение background).

Для того, чтобы дать пространство блокам, используются внешние отступы. Внешний отступ указывается с помощью правила margin и принимает значения в таком же порядке, как и padding:

  • отступ сверху;
  • отступ справа;
  • отступ снизу;
  • отступ слева.
<style>
  .gray-block {
    background-color: #ededed;
    margin: 10px 0 10px 0;
  }

  .black-block {
    background-color: #000000;
    color: #ffffff;
  }
</style>

<div class="gray-block">
    Блок с текстом на сером фоне
</div>

<div class="black-block">
    Блок с текстом на чёрном фоне
</div>

Также, как у внутренних отступов, для удобства существуют сокращённые записи этих правил:

  • Если указать два значения, то первое будет использоваться для отступов по вертикали (сверху и снизу), а второе по горизонтали (справа и слева).
  • Если указать только одно значение, то оно будет использовано одновременно для всех сторон.

Задание

Добавьте в редактор div с классом margin и установите внешние отступы в 20 пикселей со всех сторон. Стили запишите в теге style. Используйте максимально короткую запись.

23. Высота и ширина блока

CSS: Высота и ширина блока

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

Для управления высотой и шириной блочных элементов используются правила width и height, принимающие значения ширины и высоты соответственно (например, в пикселях или других доступных единицах измерения).

Создадим блок высотой 100 пикселей и шириной 100 пикселей. Чтобы визуально отделить его от теории в уроке, установим чёрный цвет фона:

<style>
  .square {
    width: 100px;
    height: 100px;
    background-color: #000;
  }
</style>

<div class="square"></div>

Задание

Добавьте в редактор div с классом rectangle и установите ширину 300 пикселей. Высота 100 пикселей. Цвет фона — чёрный (#000000). Стили запишите в теге style.

24. Блочная модель

CSS: Блочная модель

При добавлении стилей к блокам вы можете заметить, что одни стили взаимодействуют с другими. Например, правило border взаимодействует с padding — границы учитывают внутренний отступ и отодвигаются от контента внутри. Также свойство padding увеличивает ширину и высоту блока, как бы «растягивая его».

Данные особенности называются блочной моделью (box-model). По этой модели браузеры «рисуют» блок, наслаивая правила друг на друга.

Блочная модель

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

Задание

Добавьте в редактор div с классом card-hello и установите следующие правила:
* цвет фона #FA7268
* цвет текста белый #FFFFFF
* ширина блока: 230 пикселей
* высота блока 25 пикселей
* внутренние отступы 20 пикселей
* внешние отступы 10 пикселей
* рамка шириной 2 пикселя, сплошная. Цвет #9C27B0
* размер шрифта 20 пикселей

Стили запишите в теге style.

25. Каскадность 

CSS: Каскадность

Мы уже знаем, что CSS переводится как «Каскадные таблицы стилей». С таблицей стилей к этому моменту всё ясно, но что значит каскадные? Дело в том, что указать стили для элемента можно не только в одном месте.

Например, вот такой блок:

<p class="card" style="background-color: #9c27b0;"></p>

будет использовать стили сразу из трёх источников:

  1. Стили браузера по умолчанию (у тега p по умолчанию есть отступы).
  2. Стили, указанные у класса card.
  3. Стили, указанные в атрибуте style.

В данном случае браузер будет брать стили не из одного источника, а скомбинирует из трёх сразу. Получится «каскад» стилей, отсюда и название Каскадные таблицы стилей.

Задание

Добавьте в редактор p с классом cascade и установите следующие правила:
* Для класса cascade установите размер шрифта 25 пикселей.
* Для тега p установите внутренний отступ в 15 пикселей со всех сторон.

Обратите внимание, как стили применятся одновременно. Стили запишите в теге style.

26. Приоритет стилей

CSS: Приоритет стилей

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

  • Стили в атрибуте тега
  • Стили в отдельном файле
  • Стили по умолчанию, которые добавляет браузер

Если в одном из источников правила дублируются, то применятся те, которые были указаны последними.

.blue {
  color: blue;
}

.blue {
  color: red;
}

/* В данном случае текст в блоках с классом .blue будет красным, так как будет использовано последнее указанное правило */

У селекторов также существуют приоритеты. Для определения приоритета можно использовать таблицу, где каждому селектору даётся «вес»:

  • Селектор по тегу: 1
  • Селектор по классу: 10
  • Селектор по ID: 100
  • Стиль в атрибуте тега: 1000
<style>.blue {
    color: blue;
  }

  #red-block {
    color: red;
  }
</style>

<div class="blue" id="red-block" style="color: white;">Текст</div>

Какого цвета будет текст внутри блока? Воспользуемся таблицей выше, из которой следует, что селектор по классу (.blue) имеет приоритет 10, а селектор по id (#red-block) имеет приоритет 100. Значит, правило для id #red-block «перебьёт» правило для класса .blue. Помимо этого у нас есть инлайн стиль style="color: white;", который имеет «вес» 1000, а это значит, что он обладает наивысшим приоритетом.

Таким образом текст внутри блока будет белым.

Задание

Добавьте в редактор p с классом border и id no-border. Установите следующие правила:
* Для класса border установите сплошную рамку любого цвета толщиной 1px.
* Для id no-border отмените рамку. Используйте значение none у правила border-style.

Стили запишите в теге style.

Разное

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

27. Префиксы 

CSS: Префиксы

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

Это используется для тестирования и корректировки поведения свойства в браузерах. Если правило важное, то впоследствии производители браузеров «договорятся» о тонкостях использования правил и внедрят поддержку в свои новые браузеры.

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

Одним из примеров правила, которое ранее требовало использования префиксов — box-shadow, позволяющее добавить тень к блочному элементу. Если при использовании box-shadow необходима поддержка старых браузеров, то запись принимает следующий вид:

.block-shadow {
  -webkit-box-shadow: 10px 10px 5px 0px rgba(0,0,0,0.75);
  -moz-box-shadow: 10px 10px 5px 0px rgba(0,0,0,0.75);
  box-shadow: 10px 10px 5px 0px rgba(0,0,0,0.75);
}

У правил появились префиксы -webkit- для браузеров Google Chrome и Safari, а также префикс -moz- для браузера Firefox. Теперь можно быть уверенным, что даже в старых браузерах у нужного нам блока появится тень.

Чтобы узнать, стоит ли использовать префиксы для того или иного правила, можно воспользоваться сервисом Can I use. Он покажет поддержку правила браузерами и подскажет, если необходимо добавить префиксы.

Задание

В данном уроке нет задания. Можете нажимать кнопку «Проверить»

28. Единицы измерения

CSS: Единицы измерения

На протяжении курса мы использовали пиксели для обозначения размера в правилах CSS (например, размер шрифта, размер отступов, толщина рамки и так далее). Пиксель — наименьший элемент экрана, который выводит цвет. Множество пикселей (а в экране их много) формируют картинку, на которую вы и смотрите.

Пикcели являются абсолютной единицей измерения в CSS. Что же это значит? Это значит, что вне зависимости от размера экрана размер, обозначенный в пикселях сохранится. Если мы указали отступ в 30 пикселей, то он будет таким и на телефоне, и на телевизоре с диагональю в 102 дюйма.

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

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

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

<style>
  .big-text {
    font-size: 45px;
    /* Здесь значение указано абсолютное и всегда будет равняться 45 пикселям */
  }

  .very-big-text {
    font-size: 150%;
    /* Относительное значение. В данном случае высчитывается от значения в классе .big-text и будет равно 67.5 пикселей. При изменении значения в классе .big-text данное значение будет пересчитано автоматически */
  }
</style>

<div class="big-text">
    <p>Здесь большой текст</p>

    <div class="very-big-text">
        <p>А здесь текст на 50% крупнее большого текста</p>
    </div>
</div>

Помимо процентов к относительным единицам измерения также относятся:

  1. em. Похожи на процент, только указывают, на сколько больше должно быть значение.
  2. rem. Считаются относительно не родительского блока, а значения, указанного у тега html.

Задание

Добавьте div с классом header. Установите размер шрифта в 22px. Внутри вложите параграф с классом offer и установите размер шрифта в 200%. Стили запишите в теге style.

29. Цветовые модели

CSS: Цветовые модели

При обозначении цвета в правилах CSS (colorbackground-colorborder и т.д.) можно использовать разные цветовые модели в зависимости от ситуации или предпочтений.

Цветовая модель — способ математического обозначения нужного цвета. Наиболее распространённая модель, с которой многие сталкивались — RGB (Red Green Blue). Она описывает, сколько красного, зелёного и синего содержится в нужном цвете.

Для определения цвета с помощью RGB используется написание rgb(r, g, b). В скобках через запятую указываются пропорции цветов. Каждый цвет представляет собой число от 0 до 255, где 0 — отсутствие цвета, а 255 — максимальное количество. В таком написании белый цвет текста можно получить, используя значение rgb(255, 255, 255), а чёрный rgb(0, 0, 0):

color: rgb(255, 255, 255); // Белый цвет
color: rgb(0, 0, 0) // Чёрный цвет

Помимо такого написания, можно представить числа от 0 до 255 в шестнадцатеричной системе счисления (подробнее читайте на «Википедии»). В этом случае обозначение цвета станет таким, каким мы его использовали на протяжении всего курса. При записи в шестнадцатеричной системе не нужно указывать модель в виде rgb(...):

color: #FFFFFF; // Белый цвет
color: #000000; // Чёрный цвет

В модель RGB также возможно добавить степень прозрачности. В графическом дизайне такой параметр называется «альфа» каналом. Для использования альфа-канала необходима запись rgba, где a — alpha channel. Параметр прозрачности принимает числа от 0 до 1, где полностью прозрачный цвет обозначается нулём, а полностью непрозрачный — единицей.

color: rgba(255, 255, 255, 0.5) // Полупрозрачный белый цвет
color: rgba(0, 0, 0, 1) // Непрозрачный чёрный цвет

Задание

Создайте параграф с классом background-black-50 и установите ему полупрозрачный чёрный фон. Используйте цветовую модель rgba. Стили запишите в теге style.

30. Медиа запросы

CSS: Медиа запросы

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

Один из способов решения этой проблемы — использование CSS правил только для определённых разрешений экрана, например, для всех, у которых оно меньше 1000 пикселей.

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

@media (условия) {
  правила
}

Используем условие max-width, чтобы определить, до какого значения ширины использовать правила:

@media (max-width: 1000px) {

  body {
    background-color: blue;
  }

}

// На устройствах, с шириной экрана до 1000 пикселей цвет фона у тега body будет голубым.

Полезным условием является также orientation. Оно помогает указать для какой ориентации экрана использовать правила. Например, для портретной (portrait) ориентации (когда просто держим телефон в руках) у нас блоки должны занимать всю ширину экрана. В альбомной (landscape) (когда переворачиваем телефон) по 2 блока в одной строке:

@media (orientation: landscape) {
  .blocks {
    // Правила для блоков
  }
}

@media (orientation: portrait) {
  .blocks {
    // Правила для блоков
  }
}

Теперь мы имеем различные правила для разных ориентаций устройств.

Всю информацию по доступным условиям можно найти в официальном стандарте W3C

Задание

Добавьте белый цвет текста у параграфов с классом white-text-mobile для устройств с шириной экрана не больше 750 пикселей. Стили запишите в теге style.

31. Анимация 

CSS: Анимация

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

Для того, чтобы задать анимацию, используется правило @keyframes и название анимации:

@keyframes color-change {
  // Внутри будет наша анимация
}

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

Внутри keyframes необходимо указать различные временные промежутки, в которых будут происходить изменения. Например, на старте (0% завершённости анимации) у нас будет голубой текст, в середине анимации (50%) — красный, и в конце (100%) — возвращаем голубой цвет.

@keyframes color-change {
  0% {
    color: blue;
  }

  50% {
    color: red;
  }

  100% {
    color: blue;
  }
}

Теперь необходимо применить созданную нами анимацию к тексту на странице. Для этого используется правило animation с тремя основными значениями:

  • Название анимации
  • Длительность анимации. Указывается в секундах (1s, 2s, 3s и так далее)
  • Бесконечная анимация или нет (если бесконечная, то указывается параметр infinite)
.animation-text {
  animation: color-change 3s infinite;
}

Осталось создать параграф с необходимым классом, и анимация начнёт работать.

Текст с анимацией color-change. Цвет текста меняется с голубого на красный и обратно

Задание

Создайте анимацию, меняющую цвет текста с чёрного на белый. Примените анимацию к классу black-white. Стили запишите в теге style.

32. Переменные 

CSS: Переменные

Современный сайт содержит тысячи строк стилей. Стили для блоков, текста, небольших областей — всё это часто лежит в одном месте. Представьте ситуацию: есть определённый оттенок красного цвета, который мы используем во множестве различных блоков. Насколько удобно будет изменить все значения, если захочется изменить базовый цвет? Правильно, придётся находить все значения внутри файла и заменять их на новые.

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

Переменная создаётся с помощью конструкции --имя-переменной. В качестве значения зададим цвет, который можно использовать внутри проекта:

--main-color: #000000;

Переменные наследуются также, как и простые свойства CSS, поэтому их необходимо указывать у конкретного тега, и переменная будет доступна у всех элементов внутри этого тега. Если переменную нужно «встроить» глобально и использовать в любом месте CSS-файла, то используется специальный синтаксис :root, а внутри него записываются все нужные переменные.

:root {
  --main-color: #000000;
}

Теперь можно использовать переменную в любой части нашего CSS-кода. Это делается с помощью специальной конструкции var(--имя-переменной).

:root {
  --main-color: #000000;
}

.news-block {
  background-color: var(--main-color);
}

.left-sidebar {
  background-color: var(--main-color);
}

Теперь если мы хотим установить другой оттенок чёрного цвета, достаточно изменить только значение переменной --main-color, и все изменения автоматически применятся к блокам с классами .news-block и .left-sidebar

Задание

Создайте переменную main-blue и установите значением голубой цвет #00bfff. Переменную укажите в :root. Стили запишите в теге style.

33. Позиционирование 

CSS: Позиционирование

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

С помощью правила position мы можем «выдернуть» блок из вёрстки и расположить так, как удобно. Основные значения у свойства position следующие:

  • relative (относительное позиционирование). Позволяет изменить расположение элемента относительно того места, где он был расположен до применения свойства. При этом, то место на странице, которое блок занимал ранее, останется. То есть другие блоки не будут вставать на место, где блок располагался до применения правила position.
  • absolute (абсолютное позиционирование). «Вынимает» блок из HTML вёрстки и изменяет его расположение относительно левого верхнего угла cтраницы (или родительского элемента, если у него есть свойство position в значении fixedabsoluterelative, или sticky). В отличии от relative, место, где располагался absolute блок, будет удалено, и другие блоки смогут занять это место.
  • fixed. Также, как и absolute, данное правило извлечёт блок из HTML вёрстки и расположит его в левом верхнем углу. Отличием от абсолютного позиционирования является то, что блок будет «следовать за страницей» и всегда находится в зоне видимости пользователя. Это удобно для создания меню, которые должны следовать за пользователем.

Для управления расположением используются 4 правила CSS: toprightleft и bottom, значением которых являются координаты (например, в пикселях), где будет расположен блок.

<style>
  .absolute-position {
    position: absolute;
    top: 100px;
    left: 100px;
  }
</style>

  <div class="absolute-position">Блок с абсолютным позиционированием, который будет расположен на расстоянии 100 пикселей от верха и 100 пикселей от левого края страницы</div>

Задание

Создайте div с классом relative-position и установите относительное позиционирование. Значение top выставьте в 100 пикселей и в 50 пикселей значение right. Попробуйте разные значение, чтобы увидеть, как блок будет перемещаться. Стили запишите в теге style.

 

Серия публикаций:

Программирование и веб-разработка

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Авторизация
*
*
Регистрация
*
*
*
*
Открытый профиль общедоступен. (это не распространяется на вкладки вашего личного кабинета). Закрытый профиль закрывает все возможности найти или увидеть ваш личный кабинет посторонним. В любой момент, вы сможете изменить этот параметр в настройках личного кабинета.
Генерация пароля
логотип
Рекомендуем

Total Flow

Рекомендуем

Все самое интересное (Статьи)

Рекомендуем

Все самое вкусное (Рецепты)