Навчитись підключати зовнішні таблиці стилів до HTML-документа. Опанувати базові CSS-селектори, роботу з кольорами, шрифтами (типографікою) та фоновими зображеннями для стилізації інтернет-магазину.
style.css до розмітки.Увага: Продовжуємо роботу над інтернет-магазином “TechShop” у вашому репозиторії.
Порада: Якщо у вас ще немає репозиторію, створіть його за допомогою команди
git initта додайте файл.gitignoreз переліком папок та файлів, які не потрібно відстежувати (наприклад,node_modules,.env,dist,build). Ви також можете працювати над створенням власного сайту (наприклад, під час лабораторної роботи ми працювали над сайтом “My Portfolio”). Головна умова - виконання всіх пунктів плану.
main та синхронізуйте її: git checkout main && git pull.git checkout -b feature/basic-styles.assets/css існує, і в ній є файл style.css.index.html всередині тегу <head> підключіть CSS-файл за допомогою тегу <link rel="stylesheet" href="...">.<link>-теги та вставте їх у свій <head>.
Приклад підключення:
<!-- Google Fonts: Inter -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap" rel="stylesheet">
Скидання стилів (Reset) та змінні: Браузери мають власні вбудовані стилі (User Agent Styles), які відрізняються (наприклад, відступи в Chrome та Safari можуть бути різними). Щоб ваш сайт виглядав однаково скрізь, використовують спеціальні файли для “нулювання” цих стилів.
Існує два основні підходи:
Порада: Сучасні розробники часто використовують “Modern Reset” — невеликий набір правил, який фокусується на виправленні найпоширеніших проблем (як-от
box-sizing).
Черговість підключення: Завжди підключайте файл скидання стилів ПЕРЕД вашим власним CSS-файлом. Це гарантує, що ваші стилі перекриють (overrule) стандартні.
<link rel="stylesheet" href="assets/css/normalize.css">
<link rel="stylesheet" href="assets/css/style.css">
Практичний приклад (Simple Reset):
Відкрийте style.css і на самому початку додайте:
/* Скидання відступів та рамок для всіх елементів */
* {
margin: 0;
padding: 0;
box-sizing: border-box; /* Розміри елемента включають внутрішні відступи та рамки */
}
/* Глобальні змінні проєкту (Палітра TechShop) */
:root {
--primary-color: #2563eb; /* Ваш фірмовий синій */
--primary-hover: #1d4ed8; /* Колір при наведенні */
--accent-color: #f59e0b; /* Акцентний помаранчевий */
--text-dark: #1f2937; /* Основний текст */
--text-light: #6b7280; /* Другорядний текст */
--bg-color: #f9fafb; /* Фон сторінки */
--font-main: "Inter", sans-serif;
}
body задайте:
var(--font-main)),color: var(--text-dark);,background-color,line-height).Приклад коду:
body {
font-family: var(--font-main);
background-color: var(--bg-color);
color: var(--text-dark);
line-height: 1.6; /* Покращує читабельність тексту */
font-size: 16px;
}
H1 - H3 (зробіть їх жирними, додайте відступи margin-bottom).<a>:
text-decoration: none;),--primary-color,:hover (щоб при наведенні колір змінювався на темніший).Важливо про специфічність:
Якщо ви задасте стиль для a { color: red; }, а потім для .nav-link { color: blue; }, посилання з класом .nav-link буде синім, тому що селектор класу має більшу “вагу” (специфічність), ніж селектор тегу. Найвищу вагу має ID (#id).
Вкладені селектори (Descendant Selectors): Використовуйте їх, щоб стилізувати елементи лише всередині певного блоку:
.footer a {
color: var(--text-light); /* Посилання лише у футері будуть сірими */
}
class="btn"). Стилізуйте кнопку .btn:
padding), закруглення кутів (border-radius), відміна стандартного бордера.box-shadow) та прозорість (rgba) для ефектів.Сучасна кнопка:
.btn {
display: inline-block;
padding: 12px 24px;
background-color: var(--primary-color);
color: white;
border-radius: 8px;
font-weight: 600;
text-transform: uppercase; /* Текст великими літерами */
letter-spacing: 1px; /* Розрідження літер */
transition: all 0.3s ease;
box-shadow: 0 4px 6px rgba(37, 99, 235, 0.2); /* Ніжна синя тінь */
}
.btn:hover {
background-color: var(--primary-hover);
transform: translateY(-2px); /* Кнопка ніби піднімається */
box-shadow: 0 6px 12px rgba(37, 99, 235, 0.3);
}
<section class="hero">) задайте фон.Приклад стилізації Hero:
.hero {
height: 60vh; /* 60% висоти екрану */
background-image: linear-gradient(rgba(0,0,0,0.5), rgba(0,0,0,0.5)), url('path-to-image.jpg');
background-size: cover;
background-position: center;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
text-align: center;
color: white;
}
.hero h1 {
font-size: 3rem;
text-shadow: 2px 2px 4px rgba(0,0,0,0.5);
}
Збереження та відправка (Commit & Push):
git add . та git commit -m "Add typography and basic colors using CSS variables".main не потрібно.Головна сторінка сайту набула корпоративних кольорів, використовує кастомний шрифт Google Fonts. Кнопки та посилання реагують на наведення (hover).
box-sizing: border-box на всіх елементах *?CSS-змінні (:root) і чому вони кращі за просто написання HEX-кодів (#2563eb) у кожному селекторі?p та клас .text?linear-gradient поверх фонового зображення в секції Hero?transition і як вона впливає на User Experience (UX)?color: #000 та color: rgba(0,0,0,0.5)?