Когда ты заходишь на сайт Wildberries и видишь фиолетовые кнопки, карточки товаров с тенями и красивые шрифты — всё это работа CSS. HTML создаёт структуру («здесь кнопка, здесь картинка»), а CSS отвечает за то, как это выглядит: цвет, размер, расположение, анимации.
Без CSS любой сайт выглядел бы как документ Word 1995 года — чёрный текст на белом фоне, синие ссылки, никакой красоты. CSS отделяет содержимое от оформления: HTML-разработчик думает о структуре, CSS-разработчик — о внешнем виде.
Это как разница между скелетом здания (стены, перекрытия) и дизайном интерьера (краска, мебель, освещение).
<p style="color: red; font-size: 18px;">Красный текст</p>Плохо: нельзя переиспользовать, трудно читать.
<style> внутри HTML<head>
<style>
p { color: red; font-size: 18px; }
</style>
</head>Подходит для небольших страниц, но стили не переиспользуются между файлами.
<head>
<link rel="stylesheet" href="styles.css">
</head>Файл styles.css подключается к любому количеству HTML-страниц. Именно так работают все профессиональные сайты.
Браузер читает HTML и CSS одновременно, строит дерево элементов (DOM) и применяет к каждому элементу подходящие стили. Этот процесс называется каскадом — отсюда и название «Cascading Style Sheets».
Каскад означает, что стили «текут» сверху вниз: если один стиль перекрывает другой, побеждает тот, что «сильнее» или написан позже.
/* Сначала объявляем одно */
p { color: red; }
/* Потом переопределяем */
p { color: blue; }
/* Итог: текст будет синим — последний выигрывает */селектор {
свойство: значение;
другое-свойство: значение;
}Например:
button {
background-color: #7b2ff7;
color: white;
padding: 10px 20px;
border-radius: 8px;
}Ошибка 1: Забыть точку с запятой
p {
color: red /* ошибка — нет ; */
font-size: 18px;
}Ошибка 2: Пробел перед двоеточием в значении
color :red; /* Некоторые браузеры это не поймут */
color: red; /* Правильно */Ошибка 3: Подключить CSS после `</body>`
</body>
<link rel="stylesheet" href="styles.css"> <!-- Слишком поздно! -->
</html>Стили нужно подключать в <head>.
В современном React/Vue-проекте CSS пишется по-разному: CSS Modules, styled-components, Tailwind CSS. Но в основе всегда лежат те же правила CSS, которые мы изучаем сейчас. Понимание базы делает тебя эффективным с любым инструментом.
Инлайн-стили через element.style — стандартный инструмент в JavaScript: именно так анимации и динамические эффекты управляют видом элементов в реальном времени.
Применение CSS-стилей через JavaScript: три способа задать цвет
// Способ 1: Инлайн-стиль через element.style
const title = document.createElement('h1')
title.textContent = 'Заголовок сайта'
title.style.color = 'purple'
title.style.fontSize = '32px'
title.style.fontFamily = 'Arial, sans-serif'
document.body.appendChild(title)
const computed = window.getComputedStyle(title)
console.log('Цвет заголовка:', computed.color) // rgb(128, 0, 128)
console.log('Размер шрифта:', computed.fontSize) // 32px
// Способ 2: Задать целый блок стилей через cssText
const btn = document.createElement('button')
btn.textContent = 'Кнопка Wildberries'
btn.style.cssText = 'background-color: #7b2ff7; color: white; padding: 10px 20px; border: none; border-radius: 8px;'
document.body.appendChild(btn)
const btnStyle = window.getComputedStyle(btn)
console.log('Фон кнопки:', btnStyle.backgroundColor) // rgb(123, 47, 247)
console.log('Цвет текста:', btnStyle.color) // rgb(255, 255, 255)
// Способ 3: Класс со стилями (как работает CSS в реальных проектах)
const styleTag = document.createElement('style')
styleTag.textContent = '.card { background: #f5f5f5; padding: 16px; border-radius: 12px; }'
document.head.appendChild(styleTag)
const card = document.createElement('div')
card.className = 'card'
document.body.appendChild(card)
const cardStyle = window.getComputedStyle(card)
console.log('Отступ карточки:', cardStyle.padding) // 16px
console.log('Скругление:', cardStyle.borderRadius) // 12pxКогда ты заходишь на сайт Wildberries и видишь фиолетовые кнопки, карточки товаров с тенями и красивые шрифты — всё это работа CSS. HTML создаёт структуру («здесь кнопка, здесь картинка»), а CSS отвечает за то, как это выглядит: цвет, размер, расположение, анимации.
Без CSS любой сайт выглядел бы как документ Word 1995 года — чёрный текст на белом фоне, синие ссылки, никакой красоты. CSS отделяет содержимое от оформления: HTML-разработчик думает о структуре, CSS-разработчик — о внешнем виде.
Это как разница между скелетом здания (стены, перекрытия) и дизайном интерьера (краска, мебель, освещение).
<p style="color: red; font-size: 18px;">Красный текст</p>Плохо: нельзя переиспользовать, трудно читать.
<style> внутри HTML<head>
<style>
p { color: red; font-size: 18px; }
</style>
</head>Подходит для небольших страниц, но стили не переиспользуются между файлами.
<head>
<link rel="stylesheet" href="styles.css">
</head>Файл styles.css подключается к любому количеству HTML-страниц. Именно так работают все профессиональные сайты.
Браузер читает HTML и CSS одновременно, строит дерево элементов (DOM) и применяет к каждому элементу подходящие стили. Этот процесс называется каскадом — отсюда и название «Cascading Style Sheets».
Каскад означает, что стили «текут» сверху вниз: если один стиль перекрывает другой, побеждает тот, что «сильнее» или написан позже.
/* Сначала объявляем одно */
p { color: red; }
/* Потом переопределяем */
p { color: blue; }
/* Итог: текст будет синим — последний выигрывает */селектор {
свойство: значение;
другое-свойство: значение;
}Например:
button {
background-color: #7b2ff7;
color: white;
padding: 10px 20px;
border-radius: 8px;
}Ошибка 1: Забыть точку с запятой
p {
color: red /* ошибка — нет ; */
font-size: 18px;
}Ошибка 2: Пробел перед двоеточием в значении
color :red; /* Некоторые браузеры это не поймут */
color: red; /* Правильно */Ошибка 3: Подключить CSS после `</body>`
</body>
<link rel="stylesheet" href="styles.css"> <!-- Слишком поздно! -->
</html>Стили нужно подключать в <head>.
В современном React/Vue-проекте CSS пишется по-разному: CSS Modules, styled-components, Tailwind CSS. Но в основе всегда лежат те же правила CSS, которые мы изучаем сейчас. Понимание базы делает тебя эффективным с любым инструментом.
Инлайн-стили через element.style — стандартный инструмент в JavaScript: именно так анимации и динамические эффекты управляют видом элементов в реальном времени.
Применение CSS-стилей через JavaScript: три способа задать цвет
// Способ 1: Инлайн-стиль через element.style
const title = document.createElement('h1')
title.textContent = 'Заголовок сайта'
title.style.color = 'purple'
title.style.fontSize = '32px'
title.style.fontFamily = 'Arial, sans-serif'
document.body.appendChild(title)
const computed = window.getComputedStyle(title)
console.log('Цвет заголовка:', computed.color) // rgb(128, 0, 128)
console.log('Размер шрифта:', computed.fontSize) // 32px
// Способ 2: Задать целый блок стилей через cssText
const btn = document.createElement('button')
btn.textContent = 'Кнопка Wildberries'
btn.style.cssText = 'background-color: #7b2ff7; color: white; padding: 10px 20px; border: none; border-radius: 8px;'
document.body.appendChild(btn)
const btnStyle = window.getComputedStyle(btn)
console.log('Фон кнопки:', btnStyle.backgroundColor) // rgb(123, 47, 247)
console.log('Цвет текста:', btnStyle.color) // rgb(255, 255, 255)
// Способ 3: Класс со стилями (как работает CSS в реальных проектах)
const styleTag = document.createElement('style')
styleTag.textContent = '.card { background: #f5f5f5; padding: 16px; border-radius: 12px; }'
document.head.appendChild(styleTag)
const card = document.createElement('div')
card.className = 'card'
document.body.appendChild(card)
const cardStyle = window.getComputedStyle(card)
console.log('Отступ карточки:', cardStyle.padding) // 16px
console.log('Скругление:', cardStyle.borderRadius) // 12pxНапиши HTML-страницу с CSS-баннером: div с синим фоном (#3b82f6), шириной 300px, высотой 100px. Подключи стили тремя способами, показанными в уроке: инлайн-стиль на одном элементе, тег <style> в head для второго, и класс для третьего.
background-color: #3b82f6 — синий цвет. width: 300px, height: 100px. Инлайн-стиль: style="background-color: #3b82f6; width: 300px; height: 100px". Класс: class="banner-class". Инлайн-стили трудно переиспользовать — лучше использовать классы.