Основы CSS. Часть 1. Базовые понятия

839 прочитали

CSS «Cascading Style Sheets» (в переводе «Каскадные таблицы стилей») – это язык таблиц стилей. Его назначение – описание внешнего вида HTML-страницы.

Верстая какую-то страницу (сайт), большую часть времени, вы будете проводить именно за написанием CSS-правил.

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

Исходный пример.

Вот разметка простейшей HTML-страницы:

<!DOCTYPE html>

<html lang="ru">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Основы CSS</title>

<link rel="stylesheet" href="style.css">

</head>

<body>

<h1>Основы CSS</h1>

<p>CSS — формальный язык описания внешнего вида документа (веб-страницы), написанного с использованием языка разметки

(чаще всего HTML или XHTML). Также может применяться к любым XML-документам, например, к SVG или XUL.</p>

<img src="https://progtips.ru/wp-content/uploads/2020/10/img-1-1.jpg" />

<h2>Способы подключения CSS к документу</h2>

<p>Стили CSS могут быть подключены или внедрены в описываемый ими веб-документ четырьмя способами:</p>

<ul>

<li>Когда описание стилей находится в отдельном файле, оно может быть подключено к документу посредством элемента

<link>, включённого в элемент <head>.</li>

<li>Когда файл стилей размещается отдельно от родительского документа, он может быть подключён к документу

инструкцией @import в элементе<style>.</li>

<li>Когда стили описаны внутри документа, они могут быть включены в элемент <style>, который, включается в

элемент <head>.</li>

<li>Когда стили описаны в теле документа, они могут располагаться в атрибутах отдельного элемента.</li>

</ul>

<footer>(c) <a href="https://ru.wikipedia.org/wiki/CSS" target="_blank">Википедия</a></footer>

</body>

</html>

Вот как такая страница выглядит в браузере:

CSS «Cascading Style Sheets» (в переводе «Каскадные таблицы стилей») – это язык таблиц стилей. Его назначение – описание внешнего вида HTML-страницы.

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

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

Подключение CSS-стилей

Таблицы стилей делятся на внешние и внутренние.

Внешние таблицы располагаются в отдельных файлах с расширением .css (например style.css)

1. CSS-файл может быть подключен на страницу при помощи тега <link> , который должен находиться в секции <head>  HTML-страницы – это самый часто используемый способ подключения CSS:

CSS «Cascading Style Sheets» (в переводе «Каскадные таблицы стилей») – это язык таблиц стилей. Его назначение – описание внешнего вида HTML-страницы.
-2

2. Другой путь, это использование правила @import . Чтобы это правило работало оно должно находиться в таблице стилей (внутренней или внешней), в самом начале, перед остальными правилами.

Обычно @import используется внутри CSS-файлов. Также эта директива используется для подключения шрифтов.

CSS «Cascading Style Sheets» (в переводе «Каскадные таблицы стилей») – это язык таблиц стилей. Его назначение – описание внешнего вида HTML-страницы.
-3

3. Внутренние таблицы стилей встраиваются в HTML-страницу, в секцию <head> , и находятся они внутри тегов <style>

CSS «Cascading Style Sheets» (в переводе «Каскадные таблицы стилей») – это язык таблиц стилей. Его назначение – описание внешнего вида HTML-страницы.
-4

4. И последний способ подключения CSS – это встроенные стили. Они пишутся непосредственно внутри HTML-тегов в атрибуте style. Такие стили, действуют только на тот тег, в котором написаны.

CSS «Cascading Style Sheets» (в переводе «Каскадные таблицы стилей») – это язык таблиц стилей. Его назначение – описание внешнего вида HTML-страницы.
-5

Начинаем писать CSS

Давайте напишем несколько CSS-правил для нашей HTML-страницы (разметка страницы находится вначале статьи).

— отступы текста от границ блока 30 пикселей».Я, как бы, говорю себе: «хочу чтобы:
— на серо-голубом фоне страницы, посередине, располагался блок с содержимым страницы,
— ширина этого блока должна быть не более 1000 пикселей,
— фон блока белый,
— размер шрифта 16 пикселей,
— шрифт Open Sans,

Далее я решаю, что основной заголовок <h1> : «должен располагаться по центру и иметь размер шрифта в 3 раза больший, чем размер текста».

Ну и еще: «картинка должна находиться справа и обтекаться текстом по левой стороне»

Вот CSS-правила, которые выполняют то, что я задумал (поместите их в файл style.css, который разместите в той же папке, что и html страницу):

/* подключаем шрифт Open sans */

@import url('https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,400;0,700;1,400&display=swap');

html {

background-color: lightsteelblue /* фон всей страницы светло-серый-голубой */

}

body {

width: 100%; /* ширина блока с контентом 100% от ширины страницы*/

max-width: 1000px; /* но не более 1000 пикселей */

margin: 30px auto; /* внешние отступы сверху и снизу по 30 пикселей, по бокам auto - для выравнивания по центру */

background-color: white; /* фон белый */

padding: 30px; /* внутненние отступы по 30 пикселей со всех сторон */

font-size: 16px; /* размер шрифта 16 пикселей */

font-family: 'Open Sans', sans-serif; /* Шрифт Open sans */

}

h1 {

text-align: center; /* текст заголовка выровнен по центру */

font-size: 3em; /* размер шрифта в 3 раза больше размера текста на странице */

}

img {

float: right; /* картинка располагается справа */

margin-left: 15px; /* оступ слева от картинки 15 пикселей, чтобы текст не был вплотную к картинке */

}

Теперь страница выглядит вот так, согласитесь уже лучше:

CSS «Cascading Style Sheets» (в переводе «Каскадные таблицы стилей») – это язык таблиц стилей. Его назначение – описание внешнего вида HTML-страницы.
-6

Синтаксис CSS-правил

Давайте разберем основу основ CSS, а именно, синтаксис написания CSS-правил. Сделаем это на примере правила для тега <h1> , которое мы написали выше.

Посмотрите на картинку:

CSS «Cascading Style Sheets» (в переводе «Каскадные таблицы стилей») – это язык таблиц стилей. Его назначение – описание внешнего вида HTML-страницы.
-7

Объявление стиля (или CSS-правило) состоит из 2-х частей:

  1. Селектор, в нашем случает h1 (о селекторах позже поговорим подробнее)
  2. Блок объявлений (находится после селектора в фигурных скобках)

В блоке объявлений, может находится множество объявлений. Каждое объявление состоит из:

  • Свойства, которое определяет что будет сделано (в примере text-align – т.е. текст будет выровнен);
  • Двоеточия «:» – разделяет свойство и значение;
  • Значение, которое описывает как браузер должен обработать свойство (в примере center – т.е. текст будет выровнен по центру)

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

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

Вот справочный указатель на портале mdn: https://developer.mozilla.org/ru/docs/Web/CSS/Reference

Также мне нравится справочник: https://webref.ru/css

Для CSS в этом справочнике, кроме собственно списка, есть разбивка по категориям, тоже иногда бывает удобно:

CSS «Cascading Style Sheets» (в переводе «Каскадные таблицы стилей») – это язык таблиц стилей. Его назначение – описание внешнего вида HTML-страницы.
-8

Практический алгоритм действий.

Предположим, стоит задача сделать красный текст на желтом фоне.

Мы понимаем, что надо:

  • Сделать цвет шрифта красным
  • Сделать желтый фон

Ищем подходящие свойства – это color и background-color. В итоге:

{

    color: red;

    background-color: yellow;

}

Пример сложнее. Скажем, вам требуется, в каком-то блоке, фоном которого является картинка, написать текст. Вы пишите его и понимаете, что фоновая картинка слишком пестрая и текст на ней не читается.

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

Но! Вот проблема: вы в принципе не понимаете, как это сделать, какие свойства искать, как к этому подступиться.

Выход простой – в большинстве случаев это кто-то уже делал, идете в поисковик и ищите. Главное правильно сформулировать запрос. Если с первого раза не нашли, переформулируйте запрос.

В нашем примере, введите в яндексе: css сделать полупрозрачный фон.

Посмотрите поисковую выдачи, вы найдете ответ на свой запрос, и даже, с примерами.

Если вам не совсем понятны примеры, то смотрите из каких свойств состоят правила, ищите эти свойства в справочнике и читайте описания.

Селекторы в CSS

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

Селектор указывает, к каким элементам применять объявления стилей.

В нашем примере селектор h1 – это тип элемента, говоря по-простому тег.

Такой селектор означает что стили будут применены ко всем тегам h1 на странице.

В качестве селектора могут выступать:

  • элементы (имена тегов), например h2
  • класс, перед ним ставится точка, например .my-class
  • идентификатор, перед ним ставится решетка, например #main
  • псевдоклассы и псевдоэлементы

Универсальный селектор

Существует селектор *.

Он выбирает все элементы на странице. Например правило:

* {

margin: 0;

}

установит для всех элементов нулевые внешние отступы.

Элементы

Селекторы элементов дают возможность выбрать, для применения стилей, все элементы одного типа на странице (проще говоря все одинаковые теги). Например:

h2 {

color: blue;

}

Это правило устанавливает для всех заголовков <h2> голубой цвет текста.

Классы

Селекторы классов позволяют выбрать для задания стилей один или более элементов с одинаковыми именами классов.

В элементах классы задаются при помощи атрибута class, например:

<h3 class="big">Текст заголовка</h3>

<p class="big">Текст абзаца</p>

.big {

font-size: 1.4em;

}

В этом примере шрифт будет увеличен и для заголовка h3, и для параграфа.

Идентификаторы

Селекторы идентификаторов предназначены для выбора одного конкретного элемента на странице.

В элементах идентификаторы задаются при помощи атрибута id, например:

<div id="main">...</div>

Атрибуты

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

Проще всего этот вид селектора показывать на примерах:

[title]  – выберет все элементы, у которых есть атрибут title , независимо от его значения.

span[contenteditable="true"]  – выберет все элементы span , у которых атрибут contenteditable имеет значение true

Селектор a[href*="yandex.ru"]  – выберет все ссылки, у которых в атрибуте href содержится yandex.ru

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

Псевдоклассы

Псевдоклассы в CSS – это определенный набор ключевых слов, которые добавляются к селекторам через двоеточие.

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

a:hover {

color: red;

}

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

hover  – это, наверно, самый часто используемый псевдокласс. Список стандартных псевдоклассов вы можете посмотреть в документации.

Псевдоэлементы

Псевдоэлементы в CSS – это определенный набор ключевых слов, которые добавляются к селекторам через двойное двоеточие.

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

Например, можно сделать первые буквы заголовков h2 красного цвета:

h2::first-letter {

color: red;

}

Список стандартных псевдоэлементов вы можете посмотреть в документации.