Please complete the security check to access codepen.io
Why do I have to complete a CAPTCHA?
Completing the CAPTCHA proves you are a human and gives you temporary access to the web property.
What can I do to prevent this in the future?
If you are on a personal connection, like at home, you can run an anti-virus scan on your device to make sure it is not infected with malware.
If you are at an office or shared network, you can ask the network administrator to run a scan across the network looking for misconfigured or infected devices.
Another way to prevent getting this page in the future is to use Privacy Pass. You may need to download version 2.0 now from the Chrome Web Store.
Cloudflare Ray ID: 54b41fb2ec09c2d1 • Your IP : 91.146.8.87 • Performance & security by Cloudflare
Please complete the security check to access codepen.io
Why do I have to complete a CAPTCHA?
Completing the CAPTCHA proves you are a human and gives you temporary access to the web property.
What can I do to prevent this in the future?
If you are on a personal connection, like at home, you can run an anti-virus scan on your device to make sure it is not infected with malware.
If you are at an office or shared network, you can ask the network administrator to run a scan across the network looking for misconfigured or infected devices.
Another way to prevent getting this page in the future is to use Privacy Pass. You may need to download version 2.0 now from the Chrome Web Store.
Cloudflare Ray ID: 54b41fb4089a9710 • Your IP : 91.146.8.87 • Performance & security by Cloudflare
2016
Управляем пробелами: white-space [10/16] 11
Ещё более многоуровневый список [6/17] 11
Список определений [7/17] 12
Важность. Теги strong и b [8/17] 13
Акцентируем внимание. Теги em и i [9/17] 13
Переносы и разделители. Теги br и hr [10/17] 14
Верхние и нижние индексы [12/17] 16
Помечаем изменения. Теги del и ins [13/17] 16
Преформатированный текст [14/17] 17
Просто выделенный текст [15/17] 17
Испытание: разметка статьи [16/17] 17
Испытание: Рецепт каши [17/17] 19
Работа с таблицами.. 20
Добавляем строки [2/23] 20
Тренируемся в добавлении столбцов. 20
Задаём рамки с помощью CSS [4/23] 20
Улучшаем отображение рамок [5/23] 21
Горизонтальные и вертикальные рамки [6/23] 23
Отступы внутри ячеек [7/23] 23
Отступы между ячейками [8/23] 24
Испытание: простая, но аккуратная таблица [9/23] 24
Ячейки-заголовки [10/23] 25
Заголовок таблицы [11/23] 27
Заголовок таблицы [17/23] 28
Выравнивание содержимого в ячейках [18/23] 29
Добавим цвета [19/23] 32
Раскрашиваем строки [20/23] 34
Задаём размеры таблицы [21/23] 35
Испытание: итоговая таблица [23/23] 36
Знакомство с формами. 38
Первая форма [1/18] 38
Текстовое поле ввода [2/18] 39
Идентификатор и значение по умолчанию [3/18] 39
Подпись для поля ввода [4/18] 40
Связываем подпись и поле по id [5/18] 41
Добавим ещё одно поле [6/18] 42
Поле для ввода пароля [7/18] 43
Кнопка отправки формы [8/18] 43
Многострочное поле ввода [9/18] 44
Чекбокс или «галочка» [10/18] 45
Испытание: форма регистрации [11/18] проверка. 47
Переключатель или «радиобаттон» [12/18] 48
Группа переключателей [13/18] 49
Раскрывающийся список или «селект» [14/18] 50
«Мультиселект» [15/18] 51
Поле для загрузки файлов [16/18] 51
Скрытое поле [17/18] 51
Работа с CSS. 51
Введение в CSS [1/15] 51
CSS-правила [2/15] 52
Продвинутые селекторы [3/15] 52
Свойства для оформления текста [4/15] 53
Свойства для задания размеров и отступов [5/15] 53
Позиционирование элементов [6/15] 53
Создание сетки страницы [7/15] 54
Декоративные свойства [8/15] 54
Каскадность [9/15] 54
Каскадность. Переопределение стилей [10/15] 54
Каскадность и приоритеты [11/15] 55
Каскадность. Коктейль из классов [12/15] 56
Наследование [13/15] 56
Испытание: макет-прототип [15/15] 56
Селекторы по классам [3/18] 57
Отрабатываем селекторы по классам [4/18] 57
Контекстные селекторы [5/18] 57
Соседние селекторы [6/18] 58
Контекстные и соседние селекторы [7/18] 58
Псевдоклассы [9/18] 59
Псевдокласс :nth-child [10/18] 60
Курс «Селекторы, часть 1». 60
:nth-child и контекстные селекторы [11/18] 60
Псевдокласс :hover [12/18] 60
Динамические эффекты с помощью :hover [13/18] 62
Испытание. Дуэль. [18/18] 64
Курс «Наследование и каскадирование». 65
Иерархическое дерево [1/18] 65
Наследование [2/18] 66
Наследование «на пальцах» [3/18] 66
Еще немного про наследование [4/18] 67
Наследуемые свойства [5/18] 67
Ненаследуемые свойства [6/18] 68
Принудительное наследование [7/18] 68
Каскадирование [8/18] 69
Битва за курочку [9/18] 70
Битва за курочку. Раунд второй [10/18] 71
Битва за курочку. Раунд третий [11/18] 72
Битва за курочку. Борьба накаляется [12/18] 73
Битва за курочку. Запрещённый приём [13/18] 75
Еще одна задачка на специфичность [14/18] 76
Расчет значения специфичности [15/18] 77
Ещё задачка на порядок кода [16/18] 78
Перекрестное наследование [17/18] 79
Испытание: взломанный котопрофайл [18/18] 81
Курс «Оформление текста, часть 1». 81
Главный текстовый тег — span [1/16] 81
Свойство font-size: задаем размер шрифта [2/16] 81
Свойство font-weight: толщина начертания [3/16] 81
Свойство font-style: курсив [4/16] 82
Свойство font-family: шрифт [5/16] 82
Свойство color: цвет текста [6/16] 82
Свойство text-decoration: подчеркивание и другие эффекты [7/16] 83
Декоративное подчеркивание [8/16] 83
Задаем регистр символов с помощью text-transform [9/16] 83
Управляем пробелами: white-space [10/16] 83
Горизонтальное выравнивание текста: text-align[11/16] 84
Вертикальное выравнивание: vertical-align [12/16] 85
Верхние и нижние индексы на CSS [13/16] 85
Свойство line-height: управляем высотой строки[14/16] 85
Вертикальный ритм текста [15/16] 85
Испытание: рецепт на CSS [16/16] 86
Параметры фона. 87
Cвойство background-color [1/16] 88
Свойство background-image [2/16] 89
Свойство background-repeat [3/16] 90
Свойство background-position [4/16] 91
Ещё немного background-position [5/16] 93
Свойство background-attachment [6/16] 94
Курс «Фоны, часть 1». 95
Свойство background [7/16] 95
Формат JPEG [9/16] 100
Формат PNG-8 [10/16] 100
Формат PNG-24 [11/16] 101
Формат GIF [12/16] 101
Несколько фонов [13/16] 103
Эффекты с повторяющимся фоном [14/16] 104
Спрайты [15/16] 105
Испытание: CAT Academy [16/16] 107
Блочные элементы [1/23] 108
Курс «Блочная модель документа». 110
Строчные элементы [2/23] 110
Ширина и высота [3/23] 110
Внутренние отступы, свойство padding [4/23] 111
Внешние отступы, свойство margin [5/23] 113
Стандартная блочная модель [7/23] 114
Первое испытание [8/23] 115
«Схлопывание» внешних отступов [9/23] 116
«Выпадание» внешних отступов [10/23] 116
Как отцентрировать элемент? [11/23] 117
Блочная модель и строчные элементы [12/23] 118
Ширина 100% и ширина по умолчанию [13/23] 118
Проблемы обычной блочной модели [14/23] 118
Изменяем блочную модель, свойство box-sizing[15/23] 119
Второе испытание [16/23] 119
Управление типом элемента, свойство display[17/23] 120
display: inline-block [18/23] 120
display: table [19/23] 121
display: table-row [20/23] 121
display: table-cell [21/23] 121
display: none [22/23] 122
Последнее испытание [23/23] 122
Пробуем управлять потоком [1/32] 122
Управление потоком, шаг 2 [2/32] 123
Управление потоком, шаг 3 [3/32] 123
Создадим другой поток [4/32] 123
Другой поток, шаг 2 [5/32] 124
Другой поток, шаг 3 [6/32] 124
Другой поток, финал [7/32] 125
Погружение в флоаты [8/32] 125
float и ширина [9/32] 126
float и выпадание из потока [10/32] 126
Флоат рядом с флоатом [11/32] 126
Когда флоатов много, а места мало [12/32] 127
Испытание: пазл на флоатах [13/32] 127
Свойство clear [14/32] 128
Борьба с выпаданием флоатов: распорки [15/32] 128
Борьба с выпаданием флоатов: псевдораспорки[16/32] 128
Простейшая сетка, шаг 1 [17/32] 131
Простейшая сетка, шаг 2 [18/32] 131
Простейшая сетка, финал [19/32] 131
Сетка посложнее, шаг 1 [20/32] 132
Сетка посложнее, шаг 2 [21/32] 134
Сетка посложнее, шаг 3 [22/32] 136
Сетка посложнее, добавляем содержание [23/32] 138
Последняя сетка, шаг 1 [24/32] 142
Последняя сетка, шаг 2 [25/32] 144
Последняя сетка завершена [26/32] 147
Испытание: строим сетку [27/32] 151
Погружение в inline-block [28/32] 156
float vs inline-block [29/32] 158
Простая сетка на inline-block [30/32] 161
inline-block и пробелы в коде [31/32] 163
Испытание: котогалерея на inline-block [32/32] 167
Поток документа [1/20] 169
Поток документа [1/20] 170
Относительное позиционирование [2/20] 170
position: relative и свойство top [3/20] 170
position: relative и свойство left [4/20] 171
position: relative и свойство bottom [5/20] 171
position: relative и свойство right [6/20] 171
Относительное позиционирование на практике[7/20] 172
Абсолютное позиционирование [8/20] 172
Абсолютное позиционирование и строчные элементы [9/20] 172
position: absolute и свойство left [10/20] 173
position: absolute и свойство top [11/20] 173
position: absolute и свойство right [12/20] 173
position: absolute и свойство bottom [13/20] 173
Точка отсчёта координат [14/20] 174
Тренируемся задавать координаты [15/20] 174
Неявная точка отсчёта [16/20] 174
Абсолютное позиционирование на практике[17/20] 175
Фиксированное позиционирование [18/20] 175
z-index или кто кого перекроет [19/20] 175
Создаем меню.. 176
Создаём вертикальное меню [1/28] 176
Добавляем ссылки [2/28] 176
Сбрасываем стили списка [3/28] 177
Оформляем контейнер меню [4/28] 177
Оформляем пункты, простой вариант [5/28] 177
Более сложное оформление пунктов [6/28] 178
Добавляем разделители [7/28] 178
Оформляем состояния пунктов [8/28] 178
Испытание: вертикальное меню [9/28] 179
Многоуровневое вертикальное меню [10/28] 179
Устраняем проблемы оформления [11/28] 180
Переносим рамки, задаём отступы подменю[12/28] 180
Оформляем пункты подменю [13/28] 180
Тестируем на большой вложенности [14/28] 181
Испытание: многоуровневое меню [15/28] 181
Горизонтальное меню [16/28] 181
Что делать, если пункты не влезают? [17/28] 181
Усложненное оформление пунктов [18/28] 182
Завершаем оформление пунктов [19/28] 182
Испытание: горизонтальное меню [20/28] 182
Вертикальное меню с выпадающим подменю[21/28] 183
Позиционируем выпадающее подменю [22/28] 183
Отображаем подменю при наведении [23/28] 183
Горизонтальное меню с выпадающим подменю [24/28] 184
Оформляем выпадающее меню [25/28] 184
Включаем механизм выпадания [26/28] 184
Состояние «открытое подменю» [27/28] 184
Испытание: выпадающее меню [28/28] 185
Курс «Мастерская: декоративные элементы». 185
Социальные кнопки, шаг 1 [1/18] 185
Социальные кнопки, шаг 2 [2/18] 185
Социальные кнопки, шаг 3 [3/18] 186
Переключатель страниц, шаг 1 [4/18] 186
Переключатель страниц, шаг 2 [5/18] 187
Переключатель страниц, шаг 3 [6/18] 187
Переключатель страниц, шаг 4 [7/18] 187
Переключатель страниц, тестирование [8/18] 188
Испытание: карточка курса [9/18] 188
Контакты, шаг 1 [10/18] 188
Контакты, шаг 2 [11/18] 188
Контакты, шаг 3 [12/18] 189
Комментарии, шаг 1 [13/18] 189
Комментарии, шаг 2 [14/18] 189
Комментарии, шаг 3 [15/18] 189
Комментарии, шаг 4 [16/18] 189
Комментарии, шаг 5 [17/18] 190
Испытание: анонс поста [18/18] 190
Курс «Знакомство с HTML5». 191
Хедер и футер. Теги header и footer [1/19]. 191
Основное содержание. Тег main [2/19] 191
Разделы страницы. Теги article и section [3/19] 192
Изображения в формате SVG [4/19] 192
Навигация. Тег nav [5/19] 194
Завершаем футер [6/19] 199
Использование нестандартных шрифтов [7/19] 202
Подробнее о шрифтах. Правило @font-face [8/19] 205
Дополнительное содержание. Тег aside [9/19] 208
Еще раз про article. Анонс поста [10/19] 213
Завершаем главную: наполнение [11/19] 218
Внутренняя страница: структура поста [12/19] 221
Даты для людей и машин. Тег time [13/19] 225
Картинки с подписями. Теги figure и figcaption[14/19] 230
Видео. Тег video [15/19] 237
Форматы и источники видео [16/19] 244
Аудио. Тег audio [17/19] 251
Форматы и источники звука [18/19] 257
Испытание: другой вариант главной [19/19] 265
HTML5 и формы.. 271
Испытание: формы — вспомнить всё [1/28] 271
Сброс введенных значений [2/28] 274
Простая кнопка [3/28] 276
Кнопка-изображение [4/28] 279
Альтернативный способ задания кнопок [5/28] 282
Обязательные поля [6/28] 285
Поле выбора даты [7/28] 287
Поле выбора времени [8/28] 289
Список возможных значений [9/28] 291
Поле ввода числового значения [10/28] 294
Поле поиска [11/28] 297
Автофокус [12/28] 299
Другие поля для ввода дат [13/28] 300
Выбор из диапазона [14/28] 303
Область для вывода результата [15/28] 307
Группировка полей формы [16/28] 310
Паттерны значений полей [17/28] 314
Поле ввода телефона [18/28] 317
Подсказка при заполнении полей [19/28] 319
Поля ввода адресов сайтов и email [20/28] 321
Поле выбора цвета [21/28] 324
Группировка элементов списка [22/28] 328
Запрет редактирования полей [23/28] 332
Управление автозаполнением полей [24/28] 334
Переключение между полями [25/28] 338
localStorage [26/28] 342
Проверяем работу localStorage [27/28] 345
Испытание: через тернии к звёздам [28/28] 345
Селекторы, часть 2. 350
Объединение селекторов [1/20] 350
Псевдокласс :not [2/20] 352
Комбинируем :not [3/20] 355
Псевдокласс :nth-last-child [4/20] 357
Псевдокласс :first-of-type [5/20] 359
Псевдокласс :last-of-type [6/20] 362
Псевдокласс :nth-of-type [7/20] 364
Псевдокласс :nth-last-of-type [8/20] 366
Испытание: первая раскладка [9/20] 369
Cелектор последующих элементов [10/20] 372
Псевдокласс :empty [11/20] 374
Псевдокласс :only-child [12/20] 376
Псевдокласс :only-of-type [13/20] 378
Псевдоэлемент ::before [14/20] 380
Ключевые слова [5/14]
Есть целое семейство тегов , называемых мета-тегами. Их можно использовать внутри тега .
Мета-теги различаются набором атрибутов и их значений, вот некоторые из атрибутов: content, http-equiv, name и scheme.
Мета-теги хранят полезную для браузеров и поисковых систем информацию. Один из таких тегов — это описание ключевых слов страницы. Задаётся он так:
В атрибуте content через запятую перечисляются самые важные слова из содержания страницы. Раньше этот тег был очень важен для поисковиков. Каково положение дел сейчас — большой секрет Яндекса и Гугла.
Хотите досконально разбираться в разметке, знать о доступности, строить сетки
Описание содержания страницы [6/14]
Ещё один полезный для поисковых систем мета-тег — краткое описание страницы. Оно задаётся так:
В атрибуте content должно быть краткое содержание или аннотация страницы. Оно часто используется поисковиками при отображении результатов поиска.
Пойманный нами инженер из Яндекса не признался, важен ли этот тег для ранжирования, но дал ссылку на рекомендации по составлению описаний. Инженера из Гугла мы ещё только выслеживаем, так что следите за новостями.
Подключение скриптов можно выполнять разными способами. Один из способов заключается в описании скриптов прямо внутри HTML-страницы.