- Определение и назначение CSS
- Основы CSS
- Базовые понятия: каскадные таблицы стилей, селекторы, свойства и значения
- Подключение CSS к HTML
- Внутренний стиль (internal stylesheet)
- Внешний файл CSS (external stylesheet)
- Встраиваемый стиль (inline styles)
- Селекторы CSS
- Основные селекторы
- Универсальный селектор (`*`)
- Селекторы имени тегов (`p`, `h1`, `div` и т.д.)
- Селекторы классов (`.class`)
- Селекторы идентификаторов (`#id`)
- Комбинированные селекторы
- Селекторы потомков
- Селекторы дочерних элементов
- Селекторы соседних элементов
- Селекторы общих соседей
- Псевдоклассы
- :hover
- :nth-child()
- Псевдоэлементы
- ::before
- ::after
- Атрибутные селекторы
- Селекторы по наличию атрибута
- Селекторы по значению атрибута
- Свойства CSS
- Шрифты (`font-family`, `font-size`, `font-weight`)
- Цвет (`color`, `background-color`)
- Отступы и поля (`margin`, `padding`)
- Размеры и позиционирование (`width`, `height`, `position`, `top`, `left`)
- Границы (`border`, `border-width`, `border-color`)
- Текст (`text-align`, `text-decoration`, `line-height`)
- Визуальные эффекты (`opacity`, `box-shadow`)
- Блочная модель
- Макет и позиционирование
- Типы отображения (display)
- Позиционирование элементов
- Плавающие элементы (float)
- Анимации и переходы
- Переходы (transitions)
- Анимации (animations)
- Адаптивный дизайн
- Медиа-запросы (media queries)
- Отзывчивые единицы измерения (em, rem, vw, vh)
- Принципы адаптивного дизайна
- Каскадность CSS
- Приоритет селекторов
- Наследование свойств
- Важность (`!important`)
- Практические примеры
- Создание простого макета страницы
- Стилизация навигационного меню
- Форматирование блоков и стилизация текста
- Как настроить стили для адаптивности
- Дополнительные ресурсы
- Заключение: следующий шаг в изучении CSS
Определение и назначение CSS
CSS (Cascading Style Sheets) – это технология, позволяющая управлять стилями элементов на веб-страницах. Она отделяет содержание (HTML) от представления, что облегчает поддержку и изменение дизайна сайта. CSS используется для задания стилей текста, фона, расположения элементов и множества других параметров, что помогает сделать страницы более эстетичными и функциональными.
Представьте себе, что вы строите дом. HTML – это кирпичи и стены, которые формируют структуру вашего дома. CSS – это краски, обои, мебель и декорации, которые придают дому индивидуальность и стиль. CSS позволяет нам задавать цвет текста, фон страницы, размер шрифтов, расположение элементов и многое другое.
Без CSS веб-страницы выглядели бы скучно и однообразно. CSS добавляет жизнь, красоту и функциональность веб-сайтам.
Основы CSS
Базовые понятия: каскадные таблицы стилей, селекторы, свойства и значения
CSS работает с помощью каскадных таблиц стилей, которые содержат правила, определяющие внешний вид элементов веб-страницы. Эти правила состоят из селекторов, свойств и значений.
- Селекторы – это специальные выражения, которые выбирают конкретные элементы на странице, к которым будут применяться стили.
- Свойства – это характеристики элементов, которые мы можем изменять. Например, цвет текста, размер шрифта, фон страницы.
- Значения – это конкретные значения, которые мы присваиваем свойствам. Например, «красный», «16px», «белый».
Разберем для примера небольшой CSS код:
p {
color: blue;
font-size: 14px;
}
В этом примере p — это селектор, а color и font-size — свойства с соответствующими значениями, которые означают, что все абзацы на странице будут иметь синий цвет текста, а сам текст будет размером в 14 пикселей.
Подключение CSS к HTML
Существует несколько способов подключить CSS к HTML-файлу:
Внутренний стиль (internal stylesheet)
Внутренний стиль размещается внутри тега <style> в заголовке (в разделе <head>) HTML-документа. Этот способ удобен, если стили применяются только к одной странице или для небольших проектов с небольшим количеством страниц.
Пример:
<!DOCTYPE html>
<html>
<head>
<title>Образец встроенного стиля</title>
<style>
h1 {
color: blue;
font-family: Arial;
}
p {
color: green;
font-size: 18px;
}
</style>
</head>
<body>
<!-- Ваш контент -->
<h1>Заголовок</h1>
<p>Абзац</p>
</body>
</html>
Не рекомендуется для больших проектов, так как код становится неудобным для чтения и поддерживания.
Внешний файл CSS (external stylesheet)
Внешний файл CSS – это отдельный файл с расширением .css, который подключается к HTML-файлу с помощью тега <link> в заголовке HTML-документа.
Это самый распространенный и рекомендуемый способ подключения CSS. Этот способ удобен, когда нужно применить стили ко всем страницам сайта или к большому количеству элементов, и он позволяет отделить стили от HTML-кода, делая код более организованным и легким для изменения.
- Создайте файл с расширением
.css, например,style.css. - Внутри файла style.css напишите свои CSS правила. Например:
body { background-color: #f3f3f3; font-family: 'Arial', sans-serif; } ... - Подключите ваш CSS файл к HTML документу с помощью тега
<link>, который обычно размещается внутри<head>вашего HTML файла. Например:<!DOCTYPE html> <html> <head> <link rel="stylesheet" href="styles.css"> </head> <body> <!-- Ваш контент --> </body> </html> - После подключения CSS файла, откройте ваш HTML файл в браузере и убедитесь, что стили применяются корректно.
Встраиваемый стиль (inline styles)
Встраиваемый стиль применяется непосредственно к элементу HTML с помощью атрибута style. Этот метод удобен для небольших изменений, когда нужно применить стили к конкретному элементу или переопределить общие стили.
Пример:
<p style="color: red; font-weight: bold;">Это абзац с красным жирным текстом</p>
В этом случае заголовок будет красным и жирным, несмотря на то, что в общих стилях они заданы по-другому.
Не рекомендуется для больших проектов, так как код становится неудобным для чтения и поддерживания.
Лучше всего создавать селекторы класса в таблице стилей, чтобы грамотно применять стили к разным элементам:
.skill {
color: red;
font-weight: bold;
}
И затем применять класс к нужным элементам:
<h1 class="skill">Это стиль с классом</h1>
Таким образом, вы можете гибко управлять стилями вашего документа, сохраняя их в отдельных файлах и применяя к разным страницам.
Селекторы CSS
Селекторы CSS используются для выбора HTML-элементов, к которым будут применяться стили. Существует множество типов селекторов, каждый из которых имеет свои особенности и применение.
Основные селекторы
Основные селекторы позволяют выбирать элементы по их тегам, классам или идентификаторам.
Универсальный селектор (`*`)
Универсальный селектор выбирает все элементы на странице. Он используется редко, так как применяет стили ко всем элементам, что может привести к нежелательным результатам. Пример:
* {
color: blue;
}
Селекторы имени тегов (`p`, `h1`, `div` и т.д.)
Селектор по имени тега выбирает все элементы с данным именем тега. Например, селектор p выбирает все абзацы на странице. Пример:
p { color: blue; }
Этот код изменит цвет текста всех абзацев на синий.
Селекторы классов (`.class`)
Селекторы классов выбирают элементы с определенным классом. Классы задаются с помощью атрибута class в HTML, они могут быть присвоены нескольким элементам.
<p class="important">Важный текст</p>
<div class="important">Важный блок</div>
А в CSS обозначаются точкой:
.important {
font-size: 20px;
}
Этот код изменит размер шрифта всех элементов с классом important на 20 пикселей.
Селекторы идентификаторов (`#id`)
Селекторы идентификаторов выбирают элемент с определенным идентификатором. Идентификаторы задаются с помощью атрибута id в HTML (<div id="unique">Текст</div>) и обозначаются решеткой в CSS:
#unique { background-color: yellow; }
Этот код изменит цвет фона элемента с идентификатором unique на желтый.
Комбинированные селекторы
Комбинированные селекторы позволяют выбирать элементы на основе их взаимного расположения.
Селекторы потомков
Селекторы потомков выбирают элементы, являющиеся потомками другого элемента. Например, селектор div p выбирает все абзацы внутри div:
div p { color: green; }
Этот код изменит цвет текста всех абзацев внутри div на зеленый.
Селекторы дочерних элементов
Селекторы дочерних элементов выбирают элементы, являющиеся непосредственными потомками другого элемента. Например, селектор ul > li выбирает все элементы li, которые являются непосредственными потомками ul:
ul > li { list-style-type: none; }
Этот код уберет маркеры у всех элементов li, которые являются непосредственными потомками ul.
Селекторы соседних элементов
Селекторы соседних элементов выбирают элемент, который непосредственно следует за другим элементом. Например, селектор h1 + p выбирает первый абзац, следующий за заголовком h1:
h1 + p { margin-top: 0; }
Этот код уберет верхний отступ у первого абзаца, следующего за заголовком h1.
Селекторы общих соседей
Селекторы общих соседей выбирают все элементы, следующие за другим элементом. Например, селектор h1 ~ p выбирает все абзацы, следующие за заголовком h1:
h1 ~ p { color: red; }
Этот код изменит цвет текста всех абзацев, следующих за заголовком h1, на красный.
Псевдоклассы
Псевдоклассы позволяют выбирать элементы на основе их состояния или позиции.
:hover
Псевдокласс :hover применяется к элементу при наведении на него курсора:
a:hover { color: orange; }
Этот код изменит цвет текста ссылки на оранжевый при наведении на нее курсора.
:nth-child()
Псевдокласс :nth-child() выбирает элементы на основе их позиции среди родственных элементов. Например, li:nth-child(2) выбирает второй элемент li в списке:
li:nth-child(2) { font-weight: bold; }
Этот код сделает текст второго элемента li жирным.
Псевдоэлементы
Псевдоэлементы позволяют создавать и стилизовать части элементов, которые не существуют в HTML.
::before
Псевдоэлемент ::before вставляет содержимое перед элементом:
p::before { content: "Примечание: "; font-weight: bold; }
Этот код добавит текст «Примечание: » перед каждым абзацем и сделает его жирным.
::after
Псевдоэлемент ::after вставляет содержимое после элемента:
p::after { content: " (конец)"; font-style: italic; }
Этот код добавит текст » (конец)” после каждого абзаца и сделает его курсивом.
Атрибутные селекторы
Атрибутные селекторы позволяют выбирать элементы на основе их атрибутов и значений атрибутов.
Селекторы по наличию атрибута
Селектор [attr] выбирает элементы, у которых есть определенный атрибут. Например, [title] выбирает все элементы с атрибутом title:
[title] { border-bottom: 1px dotted; }
Этот код добавит пунктирное подчеркивание ко всем элементам с атрибутом title.
Селекторы по значению атрибута
Селектор [attr=»value»] выбирает элементы с определенным значением атрибута.
Например, возьмем HTML ссылку <a href="https://www.example.ru">Ссылка на сайт</a>, у нее есть атрибут [href], при помощи которого мы можем к примеру изменить все ссылки на оранжевый цвет:
a[href] {
color: orange;
}
Теперь возьмём текстовый элемент формы: <input type="text" id="name" name="student_name">, он имеет атрибут [type="text"] . Выбираем все текстовые поля ввода:
input[type="text"] { border: 1px solid #ccc; }
Этот код добавит серую рамку ко всем текстовым полям ввода.
Селекторы CSS предоставляют мощные инструменты для точного выбора элементов и применения к ним стилей. Понимание и правильное использование селекторов позволяет создавать более гибкие и эффективные стили для веб-страниц.
Свойства CSS
Свойства CSS определяют внешний вид элементов веб-страницы.
Шрифты (`font-family`, `font-size`, `font-weight`)
Данные свойства, позволяют управлять шрифтом текста:
font-family: определяет шрифт.font-size: устанавливает размер текста.font-weight: позволяют управлять толщиной текста.
Пример:
p {
font-family: Arial, sans-serif;
font-size: 16px;
font-weight: bold;
}
Цвет (`color`, `background-color`)
Данные свойства позволяют устанавливать цвет текста и фона элемента:
color: задаёт цвет текста.background-color: задаёт цвет фона.
Пример:
h1 {
color: red;
background-color: yellow;
}
Отступы и поля (`margin`, `padding`)
Свойства margin и padding позволяют устанавливать отступы между элементами и отступы внутри элемента.
Пример:
p {
margin: 10px;
padding: 5px;
}
Размеры и позиционирование (`width`, `height`, `position`, `top`, `left`)
Свойства width, height, position, top и left позволяют управлять размерами и позиционированием элементов.
Пример:
div {
width: 200px;
height: 100px;
position: absolute;
top: 50px;
left: 100px;
}
Границы (`border`, `border-width`, `border-color`)
Свойства border, border-width и border-color позволяют устанавливать границы элементов.
Пример:
div {
border: 2px solid red;
}
Текст (`text-align`, `text-decoration`, `line-height`)
Свойства text-align, text-decoration и line-height позволяют управлять выравниванием текста, декорацией и межстрочным пробелом.
Пример:
p {
text-align: center;
text-decoration: underline;
line-height: 1.5;
}
Визуальные эффекты (`opacity`, `box-shadow`)
Свойства opacity и box-shadow позволяют добавлять визуальные эффекты к элементам.
Пример:
div {
opacity: 0.5;
box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.5);
}
Блочная модель
Блочная модель описывает структуру HTML-элементов и включает отступы, поля, границы и размеры. Примеры:
div {
margin: 10px;
padding: 20px;
border: 1px solid #ccc;
width: 100px;
height: 100px;
}
Макет и позиционирование
Типы отображения (display)
Свойство display определяет, как элемент будет отображаться. Основные значения:
block: элемент отображается как блочный.inline: элемент отображается как строчный.flex: элемент становится контейнером Flexbox.grid: элемент становится контейнером Grid.
Позиционирование элементов
Свойство position определяет способ позиционирования элемента. Основные значения:
static: элемент позиционируется по умолчанию.relative: элемент позиционируется относительно своего нормального положения.absolute: элемент позиционируется относительно ближайшего позиционированного предка.fixed: элемент позиционируется относительно окна браузера.sticky: элемент позиционируется в зависимости от прокрутки.
Плавающие элементы (float)
Свойство float позволяет элементам «плавать» слева или справа от контейнера. Пример:
img {
float: left;
margin: 10px;
}
Анимации и переходы
Переходы (transitions)
Переходы позволяют плавно изменять значения свойств. Пример:
button {
transition: background-color 0.3s;
}
button:hover {
background-color: #555;
}
Анимации (animations)
Анимации позволяют создавать сложные анимационные эффекты. Пример:
@keyframes example {
from {background-color: red;}
to {background-color: yellow;}
}
div {
animation: example 5s infinite;
}
Адаптивный дизайн
Медиа-запросы (media queries)
Медиа-запросы позволяют применять стили в зависимости от характеристик устройства. Пример:
@media (max-width: 600px) {
body {
background-color: lightblue;
}
}
Отзывчивые единицы измерения (em, rem, vw, vh)
Эти единицы измерения позволяют создавать адаптивные дизайны. Примеры:
em: относительно размера шрифта родительского элемента.rem: относительно размера шрифта корневого элемента (обычно<html>).vw: 1% от ширины окна просмотра.vh: 1% от высоты окна просмотра.
Принципы адаптивного дизайна
Адаптивный дизайн позволяет веб-страницам корректно отображаться на различных устройствах и экранах. Основные принципы включают:
- Использование гибких макетов, основанных на сетках.
- Применение отзывчивых изображений и медиа.
- Использование медиа-запросов для изменения стилей в зависимости от устройства.
Каскадность CSS
Каскадность CSS означает, что стили могут накладываться друг на друга. Если одно и то же свойство установлено в нескольких правилах, то применяется правило с более высоким приоритетом.
Приоритет селекторов
Селекторы имеют разный приоритет. Селекторы с более высоким приоритетом переопределяют стили, установленные селекторами с более низким приоритетом.
Например, селектор по идентификатору #id имеет более высокий приоритет, чем селектор по классу .class.
Наследование свойств
Некоторые свойства CSS наследуются от родительских элементов к дочерним элементам. Например, цвет текста наследуется от родительского элемента к дочерним элементам.
Важность (`!important`)
Свойство !important позволяет установить самый высокий приоритет для стиля. Правило с !important переопределяет все другие правила.
Пример:
p {
color: blue;
}
p {
color: red !important;
}
В этом примере текст всех абзацев будет красным, так как правило с !important имеет самый высокий приоритет.
Практические примеры
Давайте рассмотрим несколько практических примеров применения CSS.
Создание простого макета страницы
Пример простого макета страницы с использованием Flexbox:
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Простой макет</title>
<style>
body {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100vh;
margin: 0;
font-family: Arial, sans-serif;
overflow-x: hidden;
}
header, footer {
background-color: #333;
color: white;
padding: 10px;
width: 100%;
text-align: center;
}
main {
flex: 1;
display: flex;
align-items: center;
}
</style>
</head>
<body>
<header>Заголовок</header>
<main>Основное содержимое</main>
<footer>Подвал</footer>
</body>
</html>
Результат:

Стилизация навигационного меню
Добавим в пример выше, в секцию <header> навигационное меню (место слова Заголовок):
<nav>
<ul>
<li><a href="#">Главная</a></li>
<li><a href="#">О нас</a></li>
<li><a href="#">Услуги</a></li>
<li><a href="#">Контакты</a></li>
</ul>
</nav>
и стилизуем его:
nav {
background-color: #333;
padding: 10px;
}
nav ul {
list-style-type: none;
padding: 0;
margin: 0;
display: flex;
justify-content: space-around;
}
nav ul li {
margin: 0 10px;
}
nav ul li a {
color: white;
text-decoration: none;
padding: 5px 10px;
display: block;
}
nav ul li a:hover {
background-color: #555;
}
Результат:

Форматирование блоков и стилизация текста
Добавим вместо основного содержимого немного блоков с текстовым наполнением:
<div class="container">
<div class="top-block">
<h1>Заголовок</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quisquam quaerat, aut expedita ab quis commodi, illo temporibus, necessitatibus repellat ducimus deleniti aperiam, sit pariatur reprehenderit minima aliquam voluptas ut nisi.</p>
</div>
<div class="content-block">
<h2>Подзаголовок</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ipsam dolores rerum ipsa quas eum tempora incidunt ut. In corporis et fugiat aliquam, ea, dolorem esse sit reiciendis sint, consequuntur quaerat.</p>
</div>
</div>
И стилизуем его:
.container {
font-family: Arial, sans-serif;
font-size: 18px;
line-height: 1.5;
color: #555;
width: 100%;
max-width: 1320px;
margin: 0 auto;
padding: 0 15px;
display: inline-block;
}
h1, h2, h3, h4 {
text-align: center;
}
h1 {
font-size: 37px
}
h2 {
font-size: 32px
}
.top-block {
padding: 3rem;
text-align: center;
background-color: lightgray;
border: 1px solid #555;
}
.content-block {
margin-top: 2rem;
}
Результат:

Как настроить стили для адаптивности
Для создания адаптивных страниц, которые корректно отображаются на разных устройствах, используются медиазапросы:
@media (max-width: 768px) {
body {
font-size: 14px;
}
header {
padding: 10px;
}
}
В данном примере стили будут изменяться при ширине экрана менее 768 пикселей, что улучшит восприятие страницы на мобильных устройствах.
Дополнительные ресурсы
Чтобы углубиться в изучение CSS, рекомендуем использовать следующие ресурсы:
- Онлайн-курсы: Khan Academy, Codecademy, FreeCodeCamp
- Документация MDN: https://developer.mozilla.org/ru/docs/Web/CSS
- Книги: «CSS: The Definitive Guide» Эрика Мейера, «CSS Secrets» Патрика Кэтлинга.
Заключение: следующий шаг в изучении CSS
Мы рассмотрели основные принципы работы с CSS: от подключения стилей к HTML до адаптивного дизайна. Теперь, когда вы понимаете основы, можно переходить к изучению более продвинутых тем, таких как анимации, использование препроцессоров (например, SASS) и CSS-фреймворков (например, Bootstrap). Помните, что практика – ключ к успеху, поэтому старайтесь регулярно применять полученные знания.
Продолжайте учиться и экспериментировать, и вы обязательно достигнете успеха в веб-разработке!









