Рассказываем о языке, благодаря которому интернет стал красивым.

Основы CSS​


Аббревиатура CSS расшифровывается как Cascading Style Sheets, что в переводе означает «каскадные таблицы стилей». Это язык разметки, используемый для визуального оформления веб-сайтов.

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

Вот сайт, сделанный с помощью одного лишь HTML:

proxy.php?image=https%3A%2F%2Ftimeweb.com%2Fmedia%2F247ac5a92dfa10b4669463b3d29eac57.png&hash=ab11e0b99a311747cc88b7df50785cea

А вот как выглядит та же страница после добавления CSS-разметки и оформления блоков с помощью каскадных таблиц стилей:

proxy.php?image=https%3A%2F%2Ftimeweb.com%2Fmedia%2Fa0285938e4945b87d6bc478842e831e7.png&hash=6a6e003ea2686638a010e335219dc3bf

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

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

proxy.php?image=https%3A%2F%2Ftimeweb.com%2Fmedia%2F791786488bc819a5be64a304e450d72c.png&hash=b76cb3ff43814c2134a58f416c1c81ef

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

Синтаксис CSS в отдельном файле в соответствующем формате (.css) выглядит так:

CSS:
селектор {
свойство: значение;

Селектор – это ссылка на элемент в HTML, над которым будет вестись работа (оформление).
Свойство – определенная характеристика элемента, которую нужно изменить. Например, размер или цвет.
Значение – цифровое или текстовое обозначение для выбранного свойства.

Попробуем поменять цвет текста в блоке section на красный:

CSS:
section {
color: red;

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

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

CSS:
@media (max-width: 768px) {
section: {
color: red;
}

Такой код изменит цвет текста на красный в разделе section только для экранов с разрешением меньше 768 пикселей.

А еще CSS-разметку можно использовать прямо в HTML-файлах для тестирования стилей и внесения мелких изменений.

<html>
<body>
<section style= "color: red;"></section>
</body>
</html

С другими примерами оформления CSS можно ознакомиться в официальном руководстве MDN.

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

Например, с помощью CSS можно задать параметры для SVG-изображения:

CSS:
svg {
width: 120px;
height: 68px;
fill: green;
}

proxy.php?image=https%3A%2F%2Ftimeweb.com%2Fmedia%2Fe08bd23cc60680ed89ccc4e349f9fd35.png&hash=477bfc861ec361ed3a3793757fa852a4

Или создать блоки div любых размеров с SVG-изображением в качестве фона:

CSS:
.block {
width: 220px;
height: 192px;
background-image: url("../path-to-image/image.svg");

Или же вовсе добавить в блок информацию, которой изначально нет в HTML-документе:

CSS:
.block:after {
content: "kakoy-to-text ";

proxy.php?image=https%3A%2F%2Ftimeweb.com%2Fmedia%2F690233ba6390eeb349ee17f1d6b26ccf.png&hash=610c72a07977c6d048c8d7e2bb4059cb

Также можно добавлять контент или CSS-разметку на новые объекты, созданные вне HTML. Для этого в CSS есть псевдоселекторы :after и :before (они позволяют разместить новые элементы до или после выбранного объекта).

И даже это мелочи. С помощью CSS можно рисовать, создавать объекты любых форм, анимировать их и т.п.

proxy.php?image=https%3A%2F%2Ftimeweb.com%2Fmedia%2F1ba9389b5f1713b0fd2dfc68093bcf0d.jpeg&hash=7819cf94d1e61b5c6f0000c1f0a922a3

Препроцессоры и другие варианты реализации CSS​


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

Поэтому разработчики создали препроцессоры наподобие LESS. Это механизм на базе JavaScript, позволяющий внедрить в работу со стилями синтаксис и некоторые примитивные функции из JavaScript. Если вам кажется, что у CSS недостаточно функциональности, то следует ознакомиться с препроцессорами.

proxy.php?image=https%3A%2F%2Ftimeweb.com%2Fmedia%2F76deaf12115545ce7be7323e50fc1117.png&hash=22f3cfafeab753936169b7a95115efe5

Также CSS часто реализуется внутри фреймворков. Например, технология react-styled-components перенасыщает всю функциональность каскадных стилей напрямую в код на базе React. То есть можно в одном файле прописывать стили, структуру приложения и его логику.

Правда, такой стиль взаимодействия со стилями противоречит первоначальной идее CSS.

О концепции деления контента и его оформления​


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

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

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

proxy.php?image=https%3A%2F%2Ftimeweb.com%2Fmedia%2Fa8652e42bb4490bcfbb82defcce4d332.png&hash=8d1ca26b5504ceeed34c99dd4e91e13e

Т.е. файлы HTML и CSS живут раздельно.

Основные принципы построения макетов с помощью CSS​


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

proxy.php?image=https%3A%2F%2Ftimeweb.com%2Fmedia%2Fb5ac0cf4dc0b14f3f7a1e6df075bbdc1.png&hash=d052365f3814db8347358ebabe0ce2ee

Для расположения элементов на «полотне» сайта используются две основные методики:

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

Как изучить и начать использовать CSS?​


Каскадные таблицы стилей – на удивление интуитивная вещь. Даже новички успешно справляют с самостоятельным изучением разметки без обращения за помощью к профессиональным разработчикам и дизайнерам. Достаточно обращаться в Google за описанием свойств стилей и запоминать их.

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

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

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

proxy.php?image=https%3A%2F%2Ftimeweb.com%2Fmedia%2Ffe73766b469881a0facf0cd9421cc63c.png&hash=8196cea9c99510bf771290bb5e98d691

Лучше использовать специализированные редакторы и IDE. Они автоматически дополнят код, подскажут свойства и их значения, сообщат об обнаруженных ошибках, упростят выбор цветов и так далее. Рекомендую использовать редактор VS Code (своего рода стандарт). Он бесплатный и функциональный. Но есть и другие варианты.

Чтобы внесенные в CSS-файл изменения возымели эффект над HTML-документом, первый нужно подключить ко второму. Для этого в head-тег HTML-файла нужно добавить ссылку в формате:
<link rel="stylesheet" href="style.css">

Вместо заключения​


На этом все. Как видите, CSS – это мощный инструмент для оформления сайтов, без которого невозможно сделать красивую страницу (даже если использовать какие-либо фреймворки типа React).

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