С помощью CSS задают цвет, размеры, анимацию, адаптируют сайт под устройства.
Когда-то сайты были не такими красивыми, какими мы их видим сейчас. Раньше, чтобы отображать элементы, разработчики использовали разные хаки. Например, для отступов применяли прозрачные гифки, а чтобы разделить текст — специальные символы пробела. Но всё изменилось: в 1996 году опубликовали первую версию CSS (англ. Cascading Style Sheets — каскадные таблицы стилей).
CSS — это технология, которая описывает форматирование элементов веб-страницы. С 1996 года она менялась, и сейчас разработчики используют уже третью версию.
Сайт пишут с помощью HTML-кода, но он задает только сами элементы — их логическую структуру. А специальный язык стилей CSS придает им визуальные характеристики: цвет, шрифт, размеры.
Главная страница Google 1996 года
Правильный способ применять стили — подключить внешние файлы. Но задать формат отображения можно и по-другому: применить внутренние или встроенные стили.
📌 Внешние файлы
Файлу стилей «style.css» задают любое имя. Иногда в проекте используют несколько таких файлов. Это помогает уменьшать их объем и делать файлы более читаемыми, разделять логику. Чтобы подключить к странице файл со стилями, в HTML-документе в блоке <head> добавьте тег <link>. Общий вид конструкции:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="[абсолютный или относительный путь к файлу]">
<title>Заголовок страницы</title>
</head>
<body>
</body>
</html>
Что означает каждый атрибут:
📌 Встроенный CSS
Такой формат подключения — описание стилей внутри тега <style> перед закрывающим тегом </head> HTML-документа. Этот способ применения стилей считают некорректным, так как их трудно читать и изменять. Но такой подход полезен для быстрой проверки нескольких изменений. Так используют встроенные стили:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Заголовок страницы</title>
<style type="text/css">
p {
color: blue; /* сделать текст всех абзацев синим */
}
a {
text-decoration: none; /* отключить стандартное форматирование ссылок */
}
</style>
</head>
<body>
</body>
</html>
📌 Внутренние стили
Последний способ задать элементу оформление — указать стиль, добавив внутри тега атрибут style. Внутренние стили применяйте только к единичным элементам, так как они затрудняют изменения. Пример такого способа:
<!— так контейнеру элементов мы задаем
фиксированный размер 150 пикселей в ширину
и 200 пикселей в высоту —>
<div style="width: 150px; height: 200px;">…</div>
📌 Приоритеты
Несколько вариантов форматирования будут конфликтовать между собой. Например, указание внутреннего стиля для элемента перепишет пересекающееся форматирование из подключенного файла. Чтобы решать такие проблемы, в CSS разработали специальную систему приоритетов:
📌 Правило @import
К примеру, вы используете несколько файлов стилей: «images.css» для картинок, «mobile.css» для мобильных устройств и «main.css» в качестве основного файла. Чтобы не подключать все файлы по отдельности с помощью тега <link>, используйте конструкцию «@import». Для этого напишите в самом начале файла «main.css»:
@import url('images.css');
@import url('mobile.css');
/* далее идут стили в основном файле */
p {
color: blue;
}
В HTML-документе подключите только основной файл, так как в него уже будет встроен CSS-код из дополнительных.
Их используют, чтобы выбрать, к каким элементам применять стили. Это могут быть id, классы, названия тегов, селекторы атрибутов и псевдоклассов.
📌 Селектор id
Например, внутри HTML-файла есть блок <div> с атрибутом «id». Ему задано значение «unique_row»:
<div id=”unique_row”>…</div>
Для обращения к элементам по id используйте решетку + название идентификатора. Чтобы задать размер и границу контейнеру из примера, добавьте в файле стилей:
#unique_row {
width: 400px;
height: 200px;
border: 1px solid black; /* граница толщиной 1 пиксель, сплошная, черного цвета */
}
Id должен быть уникальным, поэтому не получится применить стиль к нескольким элементам.
📌 Селектор класса
Классы применяют к нескольким элементам сразу. А у элемента может быть несколько классов одновременно. Задают их через атрибут «class»:
<div class=”block”>...</div>
<div class=”block”>...</div>
<div class=”block”>...</div>
Это три контейнера с классом «block». Чтобы обратиться к этим элементам в CSS-файле, используйте точку + имя класса. Задайте стили блокам:
.block
width: 400px;
height: 200px;
border: 1px solid black;
}
📌 Селектор атрибута
Он позволяет выбирать элементы с указанным атрибутом:
img[alt] — выберет <img src=”...” alt=””>, но пропустит <img src=””> или <img src=”” title=”...”>
📌 Селектор псевдокласса
Он нужен, чтобы задавать стили элементам, над которыми находится курсор. Или тем, по которым кликнули. Полный список псевдоклассов смотрите на платформе для обучения MDN.
Например, a:hover — выберет тег <a>, но стили применяются, только если курсор находится над ним.
Есть несколько классов шрифтов:
Шрифт задают с помощью свойства font-family. Например:
font-family: “Helvetica”, sans-serif;
Браузер считывает файл стилей. Видит, что установлен шрифт Helvetica. Если браузер не находит его, он берет первый шрифт без засечек (sans-serif).
Загружайте шрифт в формате .ttf на сайт, чтобы текст отображался правильно. Например, у вас есть файл шрифта с названием «SpecialFont.ttf». Чтобы подключить его, в папке сайта создайте подпапку fonts. Положите туда файл шрифта, а в начале файла стилей — после всех @import — напишите:
@font-face {
font-family: MySpecial; /* имя шрифта */
src: url(“fonts/SpecialFont.ttf”); /* путь к нему */
}
Задайте этот шрифт всей странице сразу:
body {
font-family: MySpecial;
}
Чтобы не искать файлы шрифтов и упростить подключение, воспользуйтесь сервисом Google Fonts. Найдите подходящий шрифт и откройте его страницу. Выберите необходимые стили, скопируйте код добавления шрифта в правом модальном окне.
Есть два способа добавить шрифт. Первый — внутри HTML-документа с помощью тега <link>. Второй — внутри файла стилей с помощью инструкции @import.
Подключение шрифта в Google Fonts
С помощью свойств в CSS задают условия отрисовки и позиционирования HTML-элементов. Полный список свойств — в справочнике HTML5Book. Рассмотрим несколько популярных примеров.
📌 Свойства текста
Такие свойства задают тексту шрифт, размер, толщину, цвет, межстрочный интервал, тени. Делают его подчеркнутым или зачеркнутым, курсивным или жирным. Приводят слова к нижнему или верхнему регистру. Делают отступы в начале абзаца, выравнивание, перенос.
Рассмотрим свойство writing-mode — эта технология еще на стадии разработки. Свойство позволяет указать направление текста:
Полный список значений и поддержка браузерами на MDN
📌 Цвет и фон
Чтобы установить в качестве фона изображение или цвет, используйте свойство background для выбранного селектора. Например,
{ background: green; }
установит зеленый цвет, а
{ background: url(“img/image1.png”); }
задаст фону изображение image1.png из папки img.
📌 Анимация
В CSS создают анимации для элементов. Например, делают так, чтобы текст менял цвет, кнопка увеличивалась, картинка уменьшалась или вращалась.
Этот код заставит параграфы переливаться:
p {
animation-duration: 5s; /* длительность анимации */
animation-name: colorful; /* название анимации */
animation-iteration-count: infinite; /* делаем ее бесконечной */
margin: auto; /* выравниваем по горизонтали */
}
/* здесь создают правила анимации под названием colorful */
@keyframes colorful {
0% {
color: orange;
}
33% {
color: red;
}
66% {
color: blue;
}
100% {
color: orange;
}
}
Результат CSS-кода из примера
Нужны, чтобы применять стили для разных устройств и сохранять адаптивность веб-страницы. Указывайте с их помощью альбомную или книжную ориентацию, тип устройства — принтер, телевизор или монитор, минимальную и максимальную ширину экрана. Например, чтобы задать стили для устройств с шириной экрана до 600 пикселей, напишите:
@media screen and(max-width: 600px) { /* селекторы и CSS-инструкции */ }
Они позволяют придерживаться определенной структуры кода. Так фронтендеру легче ориентироваться внутри файлов стилей и в HTML-разметке, создавать структуру.
Атомарный CSS — это подход к организации кода, при котором каждому свойству или группе выделяют свой класс. Так вы сможете повторно использовать код, применять нужные классы к элементам в HTML-разметке.
Методологию «Блок, элемент, модификатор» придумал «Яндекс». Идея в том, чтобы разбивать страницу на блоки — независимые части, которые можно применять повторно.
👨🎓 Курсы
CSS изучают на курсах по верстке и созданию сайтов с нуля. Или в рамках обучения на веб- или frontend-разработчиков.
Изучать frontend-разработку приходите в онлайн-университет Skypro. Вы будете работать с CSS целый год: освоите базовый синтаксис JavaScript, научитесь писать чистый код, познакомитесь с инструментами разработчика. Сделаете несколько проектов: интернет-магазин, приложение, сервис покупки авиабилетов. Соберете функциональные онлайн-игры, поработаете с виджетами и сделаете проект на React.
«Фронтенд — это возможность за три-четыре года стать работником, которого хотят по всему миру. Можно уехать или остаться, путешествовать и жить как хипстер. А еще несколько лет назад ты требовал картошку взвесить, прежде чем на кассу нести».
Александр Шлейко frontend-разработчик в «Яндексе», автор и преподаватель буткемпа «Frontend-разработчик» в Skypro
📘 Книги
Рассказываем про «Тинькофф», «Билайн» и другие компании.
Указывайте в отчете только одну ошибку, прикладывайте скрины, сообщения и коды.
Учимся добавлять и изменять элементы, объединять и копировать списки.
Конструкция, чтобы много раз выполнять один и тот же участок кода.
JSON часто применяют, когда разрабатывают API и веб-приложения.
Есть сервисы, платформы и телеграм-каналы с вакансиями по всему миру.
С помощью HTML структурируют страницу на сайте, добавляют картинки, таблицы, списки.
Цикл for используют, когда количество повторов известно заранее.
Есть комьюнити на платформах, под эгидой компаний или самоорганизующиеся.
Обязанности и зарплата аналитика, Python- и Java-разработчиков и не только.
Правильное питание — это не о жестких диетах и полном отказе от любимых продуктов.
Благодаря методу «круга-пирога» увидите свое время и возьмете его под контроль.
Ищите мотивацию, хвалите себя, визуализируйте план и результат.
Лягушки — небольшие, но неприятные дела, слоны — долговременные задачи.
Когда ставите цель, отталкивайтесь от проблемы и конкретизируйте решение.
Этот специалист контролирует все этапы проекта и приводит его к успеху.
Советы всем удаленщикам — больше двигаться, делать зарядку, разминку для глаз.
Junior зарабатывает от 40 000 ₽, Middle от 100 000 ₽, а Senior от 250 000 ₽ и выше.
Совет от героини: сделайте первый шаг, дальше будет проще; учитесь и идите вперед.
Фишки и стоимость Forest, WaterDo, SleepTown, Alarmy, Pomodoro Timer Lite.
Программист fullstack получает до 550 000 ₽, а на тестировщика учатся 4–15 мес.
SQL используют в банках, торговле, перевозках: везде, где много информации.
Сначала поставьте цель: выберите сферу и определите, кем видите себя через 10 лет.
Термины разработки, Scrum, неформального общения, организационных процессов.
Узнаете о работе программиста и поймете, как писать хороший код.
Мозг меняется всю жизнь. Мы можем на него влиять: изучать новое, развивать навыки.
Помогает планирование, вера в то, что реально изменить жизнь, поддержка семьи.
Python — самый популярный язык программирования в феврале 2022 года.
Гуманитарию подойдут профессии тестировщика, веб-дизайнера и не только.
Фронтендер создает интерфейс продукта, бэкендер работает с серверной частью.
Обязанности Java-разработчика — писать код, тестировать и улучшать его.
IT-отрасль привлекает удаленкой, карьерным ростом, высоким доходом.
Воспользуйтесь Google Colab, онлайн-интерпретаторами или скачайте Python.
Используйте конструкторы no-code, Java или Kotlin, Android Studio.
Бесплатный сервис позволяет писать тесты, поддерживает разные типы API.
Colab используют, чтобы создавать код на Python прямо в браузере.
Освоить новую профессию реально с нуля в любом возрасте, главное — мотивация.
Не выбирайте по принципу «чем проще, тем лучше» и уважайте желания ребенка.
Важнее опыт и проекты в портфолио, но иногда высшее образование все-таки нужно.
Сегодня удаленка доступна для разных сфер: ИТ, маркетинг, сервис, продажи.
Выбирайте по уровню спроса у работодателей и направлению в программировании.
20 фильмов и сериалов для тех, кому интересен мир информационных технологий.
Frontend-разработчик создает внешнюю — пользовательскую часть веб-ресурса.
Backend-разработчик отвечает за внутреннюю — серверную сторону веб-ресурса.
Спринты используют в долгих проектах и сложных продуктах.
Преимущества Python — понятный синтаксис и читаемость, готовые библиотеки.
Jupyter-ноутбуки применяют для визуализации данных в big data и data science.
Soft skills помогают развивать компетенции, осваивать новые тенденции в работе.
На Java разрабатывают всё: от приложений и ПО до технологий Big Data.