Зачем нужен CSS

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

  • <basefont> определял шрифт всего HTML-документа;
  • <font> определял гарнитуру, цвет и размер текста, который находится внутри;
  • <center> выравнивал по центру всё своё содержимое;
  • <big> увеличивал размер текста;
  • <strike> отображал текст перечёркнутым.

Также могли быть использованы несколько атрибутов HTML:

  • bgcolor определял цвет фона элемента;
  • text определял цвет текста;
  • атрибуты margin могли быть использованы для добавления пространства с любой стороны элемента.

Зачем избегать таблиц?

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

<table>
  <thead>
    <tr>
      <th>Логотип</th>
      <th colspan="2">Слоган</th>
    </tr>
  </thead>
  <tfoot>
    <tr>
      <th colspan="3">Copyright 2015</th>
    </tr>
  </tfoot>
  <tbody>
    <tr>
      <td>Левое меню</td>
      <td>Основное содержимое</td>
      <td>Правый сайдбар</td>
    </tr>
  </tbody>
</table>

Такой подход был громоздким по нескольким причинам:

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

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

Что такое CSS

CSS (Cascading Style Sheets) означает каскадные таблицы стилей и представляет собой язык разметки стилей (как HTML или XML). Таким образом, CSS ничего не представляет сам по себе, если не связан с HTML-документом.

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

Как работает CSS

CSS выбирает элемент HTML (например, абзац), задаёт свойство для изменения (такое как цвет) и применяет определённое значение (например, красный):

p { color: red;}

Слово «стиль» может быть обманчивым. Можно подумать, CSS используется только для изменения цвета текста, размера и типа шрифта. Но CSS может задать компоновку HTML-документа, определяя высоту, ширину, внутренние и внешние поля, положение, колонки и др.

Где я могу писать CSS?

CSS как атрибут

Вы можете писать CSS непосредственно в элементах HTML с помощью атрибута style:

<p style="color: red;">Это важный текст.</p>

CSS в <head>

Вы можете использовать тег <style> внутри <head> вашего HTML-документа:

<!DOCTYPE html>
<html>
 <head>
  <title>Привет, мир</title>
  <style>
   p { color: red;}
  </style>
 </head>
 <body>
  <p>Этот абзац будет красным.</p>
 </body>
</html>

CSS в отдельном файле

Вы можете писать свой CSS в отдельном файле с расширением .css, а затем связать его с HTML с помощью тега <link>.

CSS

p { color: red; }

HTML

<!DOCTYPE html>
<html>
 <head>
  <title>Привет, мир</title>
  <link rel="stylesheet" href="style.css">
 </head>
 <body>
  <p>Этот абзац будет красным.</p>
 </body>
</html>

Данный HTML-документ, который «вызывает» файл CSS, в нашем случае файл с именем style.css, расположен в той же папке, что и CSS-файл.

Этот третий метод, использующий отдельный CSS-файл, является предпочтительным.

Почему бы не размещать стиль прямо в HTML?

Потому что мы хотим отделить содержимое (HTML) от его представления (CSS). Если вы хотите представить замысел этого различия, присмотритесь к замечательному CSS Zen Garden: каждый дизайн использует один и тот же HTML, но каждый раз другой CSS.

Это делает обслуживание проще: тот же CSS-файл может быть использован на всём сайте. А также обеспечивает гибкость: сосредоточьтесь на содержании с одной стороны и стилизации с другой.

Перейти к заданиям

Автор и редакторы

Автор: Джереми Томас
Последнее изменение: 10.04.2018
Редакторы: Влад Мержевич