**CSS** (Cascading Style Sheets) - каскадные таблицы стилей.
## Стилевые файлы
Пример возможных стилевых файлов:
- `main.css` - для компьютеров
- `mob.css` - для смартфонов
- `printer.css` - для печати
Пример стилевого файла - `test.css`:
```css
body {
color: white;
background: #FF6600;
}
```
- `body` - название тега
- `color` - свойство (цвет символов)
- `white` - значение (белый)
- `background` - свойство (цвет фона)
- `##FF6600` - значение (`R` = `FF` = 255, `G` = `66` = 102, `B` = `00` = 0)
#### Подключение стилевого файла
``, где `stylesheet` - таблица стилей, `text/css` - тип данных MIME (Multipurpose Internet Mail Extension)
Подключение стилевого файла в HTML-коде:
```html
Страница с файлом стилей
Привет, Вася!
```
Стилевой файл `test.css`:
```css
body {
color: white;
background: #0000E0;
}
```
Результат (синий фон, белый текст):

## Стили для элементов
### Шрифты
```css
p {
font-family: Arial,sans-serif;
font-size: 20px;
font-style: italic;
font-weight: bold;
}
```
- `p` - для всех абзацев
- `font-family` - семейство шрифтов:
- `serif` - с засечками
- `sans-serif` - без засечек
- `monospace` - моноширинный
- `font-size` - размер в пикселях
- `font-style`:
- `normal` - обычный
- `italic` - курсив
- `font-weight`:
- `normal` - обычный
- `bold` - жирный
#### Размеры, выравнивание
```css
p {
background: #E6E6FF;
width: 80%;
height: 100px;
text-align: left;
text-indent: 20px;
}
```
- `background` - цвет фона
- `width` - ширина
- `height` - высота
- `test-align` - выравнивание:
- `left` - по левому краю
- `center` - по центру
- `right` - по правому краю
- `justify` - по ширине
- `text-indent` - абзацный отступ
Результат:

#### Рамка, поля, отступы
```css
p {
background: #ccffcc;
border: 1px solid green;
margin: 0 40px 20px 40px;
padding: 5px;
}
```
- `border` - рамка:
- `1px` - толщина
- Вид линии:
- `solid` - сплошная
- `dashed` - штриховая
- `dotted` - точечная
- `green` - цвет
- `margin` - отступы снаружи:
- `0` - сверху
- `40px` - справа
- `20px` - снизу
- `40px` - слева
- padding - отступы внутри:
- `5px` - со всех сторон

Результат:

### Таблицы
#### Выравнивание
Без CSS:
- всей таблицы - `
`:
- `left` - по левому краю
- `center` - по центру
- `right` - по правому краю
```html
...
```
- информации в ячейках - `
`, где значения `align` - аналогично выравниванию всей таблицы, а значения `valign`:
- `top` - по верхней границе
- `middle` - по центру
- `bottom` - по нижней границе
```html
по центру, по верхней границе
по правой границе, по середине
```
Результат:

Через CSS:
HTML-код:
```html
По центру, по верхней границе
По правой границе, по середине
```
CSS-файл:
```css
table.ex tr.centop {
text-align: center;
vertical-align: top;
height:100px;
}
table.ex td.rmid {
text-align: right;
vertical-align: middle;
width:200px;
}
```
где:
- `text-align`:
- `left` - по левому краю
- `center` - по центру
- `right` - по правому краю
- `vertical-align:`
- `top` - по верхней границе
- `middle` - по центру
- `bottom` - по нижней границе
Результат:

#### Фон и цвет текста
HTML-код:
```html
Привет!
Таблица из двух строк
и двух столбцов
```
CSS-файл:
```css
table.qq td {
background: green;
}
table.qq tr.spec td {
background: blue;
color: white;
}
table.qq tr.spec td.r {
background: red;
}
table.qq td.pic {
background: url("web.jpg");
}
```
В первых 3 случаях в качестве фона используется цвет, а в четвертом - рисунок.
Результат:

#### Отступы
Без CSS:
- `cellspacing` - интервал между ячейками
- `cellpadding` - отступ внутри ячеек
```html
1
2
```

Через CSS:
- `id` - идентификатор (уникальное имя)
HTML-код:
```html
```
CSS-файл:
```css
p.error {
background:red;
}
p {
background:blue;
color:white;
}
```
`p.error` - для абзацев класса `error`.
Результат:

Более конкретное указание отменяет более общее.
`` - элемент в тексте.
HTML-код:
```html
Ошибка!Что-то с памятью.
```
CSS-файл:
```css
.error {
background:red;
color:white;
}
```
`.error` - для всех элементов класса `error`.
Результат:

## Фоновый рисунок
HTML-файл:
```html
Привет, Вася!
```
CSS-файл (с повторением):
```css
p.hallo {
background: white url(images/grad.jpg);
}
```

CSS-файл (только с вертикальным повторением):
```css
p.hallo {
background: url(grad.jpg) repeat-y;
}
```

HTML-файл:
```html