Часть 6. Урок: тренируемся применять селекторы
Из предыдущих пяти подглав этого учебника вы узнали о различных видах селекторов. Пришло время потренироваться применять на практике наиболее популярные из них. В этом уроке мы создадим стиль для простой HTML-страницы вымышленной веб-студии. Поехали! 😉
Обратите внимание: некоторые свойства из данного урока могут не поддерживаться старыми версиями браузеров. Если у вас не работает одно из свойств CSS, рекомендуем проверить, поддерживает ли его ваш браузер. Удобный сайт для проверки: caniuse.com.
Загрузка файлов
Для начала загрузите архив с файлами.
В архиве находится документ HTML под названием selektory-praktika.html. В нём нет CSS-стилей – поэтому вы будете самостоятельно их добавлять (на этот раз в виде внутренней таблицы стилей, размещенной прямо в HTML-документе).
Подключаем внутреннюю таблицу стилей
Откройте файл selektory-praktika.html в удобном для вас текстовом редакторе. Отыщите закрывающий тег </head> и напишите над ним открывающий и закрывающий теги для подключения внутренней таблицы стилей. Должно получиться так:
<!-- ...HTML код... --> <style> </style> </head> <!-- ...HTML код... -->
Создаем стиль для абзацев
Сохраните изменения и откройте файл в браузере. Сейчас страница выглядит совсем непрезентабельно. Попробуем придать ей приглядный вид и начнем с текста. Между тегами <style></style> добавьте следующий код CSS:
p {
font-family: 'Lato', sans-serif;
font-size: 1em;
color: #474747;
text-align: center;
padding: 20px 0;
}
Вы создали селектор для тега <p>, указав его имя перед открывающей фигурной скобкой {. Данный блок объявлений устанавливает внешний вид для всех элементов p на странице:
- шрифт
Lato; - размер шрифта
1em; - цвет шрифта
#474747; - выравнивание текста по центру;
- размеры полей отступа для текста сверху и снизу в 20 пикселей.
Рекомендация: не забывайте ставить точку с запятой после каждого значения свойства, а также записывать каждое свойство с новой строки и делать отступы с помощью клавиши пробела или табуляции (для более легкого восприятия).
Общий стиль для заголовков с помощью селектора групп
Сохраните изменения в файле и обновите страницу в браузере, чтобы увидеть, как преобразился основной текст. Теперь пора украсить наши заголовки и заодно вспомнить, что такое селекторы групп. Добавьте еще один стиль CSS на страницу:
h1, h2 {
font-family: 'Bitter', serif;
color: #464646;
text-align: center;
text-transform: uppercase;
padding: 40px 0 30px;
}
Селектор h1, h2 является групповым – мы просто перечислили через запятую те элементы страницы, которым желаем придать одинаковый стиль. Селекторы групп очень удобны, ведь благодаря им нам не придется записывать один и тот же стиль для каждого элемента по отдельности (что, кстати, сделало бы код CSS более громоздким).
Сохраните изменения и обновите страницу. Вы увидите, что заголовки <h1> и <h2>изменили свой вид:
- шрифт изменился на
Bitter; - цвет изменился на
#464646; - текст расположился по центру страницы;
- все буквы стали прописными за счет значения
uppercaseдля свойстваtext-transform; - появились отступы: 40 пикселей сверху и 30 пикселей снизу.
Теперь нам понадобится еще немного поправить стиль заголовков, но поскольку для каждого из них будут устанавливаться разные свойства и значения, запишем их по отдельности, в виде обычных селекторов тегов:
h1 {
font-size: 2.6em;
border-bottom: 1px solid #eae9e9;
}
h2 {
font-size: 2em;
}
С помощью этого кода CSS мы изменили размер шрифта для заголовка <h2>, увеличив его в два раза по сравнению с размером шрифта, заданным в браузере по умолчанию, а также увеличили шрифт для <h1> до 2.6em и добавили под текстом сплошную полосу шириной 1px с цветом #eae9e9, которая немного оживляет страницу.
Используем селектор ID для <div>
Наша страница начинает потихоньку преображаться. Следующее, что мы будем делать – это создавать селектор ID (идентификатор). Необходимо немного сузить область контента, который расположен после логотипа. Назовем ID area и запишем стиль:
#area {
width: 55%;
padding-bottom: 40px;
margin: 0 auto;
}
В первой части главы мы упоминали о том, что в CSS перед селектором ID ставится символ решетки #. Итак, этот стиль должен ограничить область содержимого до 55% от всей ширины экрана, а также разместить его по центру страницы (margin: 0 auto). Кроме этого, внизу появится отступ в размере 40 пикселей.
После того как вы сохраните изменения в файле и обновите страницу в браузере, вы не увидите изменений. Всё потому, что вы еще не присвоили идентификатор к элементу HTML-документа. Нам необходимо присвоить этот ID определенному элементу <div> (в нашем случае он единственный). Это должно выглядеть таким образом:
<div id="area" … >
Не забудьте о том, что в HMTL перед именем идентификатора ставить символ решетки не нужно (он записывается только в таблице CSS).
Оживляем логотип, используя класс CSS
Теперь можно посмотреть на результат. Почти половина пути уже пройдена, но нам еще есть над чем поработать. Взглянем на лого: пожалуй, его можно немного украсить, использовав для этого селектор класса под названием logo, а также псевдокласс :hover:
.logo {
padding-top: 30px;
cursor: pointer;
transition: 0.6s ease;
}
.logo:hover {
opacity: 0.6;
}
Перед селектором класса в CSS обязательно ставится точка. Также запишите класс в HTML-документе (уже без точки!), присвоив его тегу img:
<img class="logo" … />
Что делает этот стиль:
- устанавливает отступ сверху от содержимого в размере 30 пикселей;
- изменяет вид курсора на
pointerпри наведении на элемент; - устанавливает эффект и скорость перехода от одного состояния элемента к другому (нужно для следующего пункта);
- псевдокласс
:hoverсо свойствомopacityобеспечивает изменение прозрачности элемента (до 0.6) при наведении на него. А благодаря предыдущему пункту переход происходит более плавно.
Примечание: некоторые браузеры (например, IE9) отображают рамку для тех изображений, которые являются ссылками. Чтобы убрать эту рамку для всех картинок, допишите этот стиль:
a img {
border: none;
}
Украшаем все абзацы под заголовком: родственные селекторы
Пришла пора вспомнить о родственных (сестринских) селекторах. В данном уроке нам понадобится такой селектор, чтобы стилизовать все абзацы <p> и сделать их похожими на кнопки, которые следуют после заголовка <h2> (в пределах блока <div>). Запишите такой стиль:
h2 ~ p {
font-family: 'Lato', sans-serif;
font-size: 1.2em;
text-transform: uppercase;
color: #425c63;
background: #dbeaee;
border-radius: 100px;
padding: 25px 0;
transition: 0.5s ease;
}
h2 ~ p:hover {
font-weight: 900;
color: #FFF;
background: #559fb4;
cursor: pointer;
}
@media all and (min-width: 500px) {
h2 ~ p:hover {
letter-spacing: 3px;
}
}
Разберем по порядку, что означает каждая строка. Применив этот стиль, мы:
- изменили внешний вид шрифта для тегов
<p>, следующих за<h2>(шрифтLato, размер шрифта1.2em, преобразование текстовых символов в верхний регистрtext-transform: uppercase, цвет#425c63); - установили цвет фона
#dbeaeeдля элементов; - установили радиус скругления углов фона
100px; - установили ширину полей отступа сверху и снизу содержимого в размере
25px; - задали эффект и скорость переходаtransition: 0.5s ease от одного состояния элемента к другому.
При наведении указателя мыши на элемент он меняет свой вид следующим образом:
- шрифт становится сверхжирным (900);
- цвет шрифта – белый;
- цвет фона –
#559fb4; - курсор –
pointer(если сделать кнопки рабочими, то этот вид курсора будет очень уместен).
Также вы наверняка заметили строку @media all and (min-width: 500px) – это медиа-запрос (мы обязательно будем изучать их позже). На данном этапе достаточно упомянуть, что такой медиа-запрос указывает, при каких условиях будет отображаться наш стиль h2 ~ p:hover {letter-spacing: 3px;}. Так, расстояние между символамиletter-spacing будет увеличено на 3 пикселя при условии, что веб-страница открыта на любом устройстве с шириной экрана не менее 500 пикселей.
Подсказка: сохраните все изменения в файле, обновите страницу и попробуйте изменить размеры окна браузера. Понаблюдайте за тем, как ведут себя элементы веб-страницы при разной ширине окна.
Финал: преображаем футер
Нам осталось совсем немного – добавить стиль для футера. Запишите этот код CSS в файл:
footer {
width: 100%;
background: #464646;
padding: 30px 0;
}
footer p {
color: #ccc;
}
Для создания футера мы использовали HTML5-тег <footer>, соответственно, в селекторе указано имя этого тега. Добавив этот код CSS в рабочий файл, вы установили ширину для футера 100%, цвет #464646 и отступы в размере 30px. Также, используя селектор потомков footer p, вы изменили цвет текста для абзацев в футере на #ccc.
Сохраните и обновите страницу. Вероятно, вас смутили небольшие отступы между краями футера и границами окна. Это происходит, потому что у окна имеются отступы по умолчанию. Чтобы убрать их, запишите для тега <body> эти несколько строк CSS кода:
body {
margin: 0;
}
Завершение
На этом всё. Вы можете взглянуть на демо: в итоге у вас должна получиться такая страничка.

Если по какой-то причине у вас что-то не получилось, вы можете в загруженном архиве открыть готовый файл selektory-praktika-ready.html и посмотреть его код. Не забывайте ставить точки с запятой и фигурные скобки, а также, по возможности, использовать наиболее свежую версию браузера.
В четвертой главе учебника мы будем разбираться с такой интересной темой как наследование CSS.