CSS (Cascading Style Sheets — каскадные таблицы стилей) описывает внешний вид элементов страницы: цвета, шрифты, отступы, положение.
Мы не пишем код с нуля. Учимся читать CSS, который выдал ИИ, находить нужное правило и менять значение под себя.
Где пишутся стили? Есть три способа: прямо в теге, в HTML-файле и в отдельном файле.
style прямо в теге <p style="color: red;">Применяем CSS</p> — стиль действует только на указанный элемент, на другие части документа не влияет. .css Файл создаётся как обычный текстовый, с расширением .css, и подключается в <head> строкой <link rel="stylesheet" href="style.css">. Один файл стилей можно связать с несколькими HTML-файлами: правишь один файл — дизайн меняется на всех страницах, а код HTML упрощается. <style> внутри <head> Стили описываются внутри элемента style в разделе <head> и действуют в пределах одного HTML-файла. Приоритет. Стили, которые загружаются в браузер позже, имеют более высокий приоритет по отношению к остальным. Сначала всегда загружается внешний файл, затем — элемент style, затем — атрибут style.
style Стили в атрибуте style Основное правило: более поздняя инструкция отменяет более раннюю.
Инструкция CSS собирается из селектора, свойства и значения:
h1 {
color: red;
/* красный цвет текста */
} Нажимай на подсвеченные части
{ }.:.;. Объявлений внутри скобок может быть несколько: h1 { color: red; font-style: italic; }/* и */ браузер не читает. В CSS комментарии пишутся не так, как в HTML. Вложенными они быть не могут.Пробелы и переносы строк не влияют на работу кода — их вставляют, чтобы инструкции легче читались.
Значение по умолчанию. У каждого свойства есть заранее заданное значение — оно применяется, если своё не указано и не унаследовано. Например, у font-weight по умолчанию normal: текст не жирный, даже если про насыщенность нигде не написано.
Селектор — это указатель: он говорит браузеру, каким элементам достанется стиль. Три главных способа указать элемент — по тегу, по классу и по идентификатору:
p покрасит каждый абзац <p>.<p class="book">. В CSS к метке обращаются через точку: .book. Одну и ту же метку можно повесить хоть на десять элементов — все получат этот стиль.<p id="intro">, — но уникальная: один id носит только один элемент на странице. В CSS к нему обращаются через решётку: #intro.<h1>, и <h2>.Как это выглядит вживую:
<!-- HTML -->
<p id="intro">Знакомься: капибара</p>
<p>Капибара живёт у воды</p>
<p class="fact">Капибара — самый крупный грызун</p>
/* CSS */ p { color: gray; }
.fact { background-color: #ABDBDB; }
#intro { font-weight: bold; } Щёлкай селекторы — в результате подсветятся элементы, которые они находят
Знакомься: капибара
Капибара живёт у воды
Капибара — самый крупный грызун
<p> — серый цвет текста получают все три абзаца.class="fact" — здесь это третий абзац: у него появляется мятная подложка. Серый цвет от правила p при этом остаётся — правила дополняют друг друга, когда меняют разные свойства. Тот же класс можно присвоить и другим элементам.id="intro" — первый абзац становится жирным, оставаясь серым. Идентификатор на странице один.Чтобы найти стиль элемента в чужом коде: посмотри в HTML его class или id — и найди такой же селектор в CSS.
Стиль может применяться только при наступлении события — такие классы называются псевдоклассами. Имя тега и псевдокласс соединяются двоеточием:
a:hover { color: red; } /* при наведении указателя на ссылку */
a:active { color: #EE3B96; } /* пока ссылка активна */ :hover срабатывает, пока на элементе указатель мыши. :active — активное состояние: между нажатием и отпусканием кнопки мыши. Псевдокласс active указывают после hover.
Цвет в CSS складывается из трёх составляющих: красной (red), зелёной (green) и синей (blue). Чем выше значение составляющей, тем интенсивнее цвет. Способы записи:
00 до ff. Используются цифры 0–9 и буквы a–f.ff, 00, 00 → f00.Размеры элементов задают в единицах:
font-size: 14px;width: 120%;1.2em.Если значение равно нулю, единицы измерения можно не указывать: padding: 0;
font-size: 1.2em; Что означает это значение?serif (с засечками), sans-serif (без засечек), monospace (фиксированной ширины). Можно указать несколько через запятую: следующее используется, если недоступно предыдущее. Вначале обычно пишут название конкретного шрифта, затем — семейство. Имя с пробелами — в кавычках: font-family: "PT Sans", sans-serif; Шрифт не из стандартного набора сначала подключают файлом в <head> — например, строкой <link> с Google Fonts. <link> скачивает шрифт, а font-family указывает, где его применить: без первого браузер шрифта не знает, без второго — не использует.normal — обычный (400), bold — жирный (700).italic — курсив.line-height: 1.2;left, right, center, justify (по ширине).underline — подчёркивание, overline — надчёркивание, line-through — перечёркивание, none — без линии.text-shadow: 10px 5px 3px #BDAFA1; Если цвет опущен, тень совпадёт с цветом текста. Отрицательное смещение сдвигает тень в противоположную сторону.Каждый элемент, описанный в коде HTML, занимает прямоугольную область — блок. Блок состоит из содержимого, внутренних отступов, границы и внешних отступов:
border: 5px dotted #CE7C9F; Типы: solid — сплошная, dotted и dashed — пунктирные, double — двойная.border-radius: 20px; Фон элемента обрезается по скруглению.Одно число в margin или padding задаёт одинаковый отступ со всех четырёх сторон. Четыре числа — по сторонам в порядке: сверху, справа, снизу, слева. Два — первое сверху и снизу, второе слева и справа. Отдельную сторону задают своим свойством: margin-top, padding-left и так далее.
div {
width: 100px; padding: 10px; border: 2px solid #CE7C9F; margin: 20px;
background-color: #F3EEE7;
} Нажимай на строки — увидишь, за какой слой блока отвечает каждая
margin всегда прозрачный.background-image: url("wall.png"); По умолчанию картинка повторяется по горизонтали и вертикали.repeat-x — по горизонтали, repeat-y — по вертикали, no-repeat — не повторять.left / center / right по горизонтали, top / bottom по вертикали, либо число в px или %.contain — всё изображение целиком с сохранением пропорций, cover — пропорции сохраняются и занята вся площадь. Вместо этих слов можно задать точный размер картинки в пикселях или процентах: background-size: 200px;Свойство display задаёт способ отображения элемента:
Обычно браузер сам расставляет элементы по порядку — как они идут в коде. Свойство position позволяет сдвинуть элемент с его обычного места. Значения отличаются тем, от чего отсчитывается сдвиг:
top: 10px; — на 10 пикселей ниже, чем он стоял бы сам.Куда и насколько сдвигать, задают свойства top, bottom, left, right — отступ от соответствующего края.
Если границы элементов перекрываются, порядок наложения меняют свойством z-index: значение — целое число, чем оно выше, тем ближе элемент к переднему плану. Чтобы z-index работал, у элемента должно быть значение position, отличное от static.
Флексбокс (flexbox, flexible box) — контейнер, размещение и размер которого можно гибко регулировать. Раньше макеты собирали свойствами float и position; флексбокс упрощает эту работу.
Свойство задаётся родительскому элементу: display: flex — контейнер занимает всю ширину, display: inline-flex — пространство, ограниченное содержимым. Родительский элемент становится флекс-контейнером, вложенные в него — флекс-элементами:
#container {
display: flex;
} row — слева направо (по умолчанию; совпадает с направлением письма), row-reverse — справа налево, column — сверху вниз, column-reverse — снизу вверх.center, space-between) и расстояние между ними.Попробуй сам: переключай значения — флекс-элементы перестроятся, а код ниже обновится.
Многоколоночная вёрстка раскладывает содержимое в несколько колонок, как в газете: column-count — количество колонок, column-width — ширина колонки, columns: 5em 2; — оба значения одним свойством. Расстояние между колонками — column-gap.
0.0 (полностью прозрачный) до 1.0 (полностью непрозрачный, по умолчанию).background: linear-gradient(45deg, #CE7C9F, #F9F8F4); — направление, начальный цвет, конечный. Направление задаётся углом или конечной позицией (to right). Цветов может быть несколько, с позициями смены.Переходы обеспечивают плавную смену одного стиля другим: цвет, размер или положение меняются не скачком, а в течение заданного времени. Указываются только первый и последний стили — промежуточные состояния браузер рассчитывает сам. transition-property — какие свойства менять (несколько — через запятую), transition-duration — за сколько времени (в секундах или миллисекундах):
div {
width: 100px;
background-color: #F3EEE7;
transition-property: width, background-color; transition-duration: 3s;
}
div:hover {
width: 200px;
background-color: #ABDBDB;
} Нажимай на подсвеченные строки
Практика
Перед тобой карточка с готовыми стилями. Найди нужные свойства, поменяй значения, допиши новые — как будешь делать в своём проекте.
background (например, на #181818 — тогда поменяй и color, чтобы текст читался).padding — больше 16px.font-size — больше 16px..card скругление углов: border-radius: 12px;.card h2 (оно уже есть в коде) и допиши в него цвет заголовка: color: #CE7C9F;backgroundpadding (больше 16px)font-size (больше 16px)border-radius.card h2 дописан color