Практическая работа: CSS для сайта школьного клуба
11 класс · 40 минут · HTML + CSS
Цели: сравнить три способа подключения CSS (11.5.3.5) и применить CSS при оформлении сайта (11.5.3.6).
Результат: три связанные страницы с единым оформлением, отдельным стилем страницы Events и выделенным объявлением. Вы настроите отступы и границы семантических блоков и проверите расчёт их ширины.
Понадобятся браузер и редактор кода. Интернет и веб-сервер не нужны. Сначала распакуйте архив. Работайте в папке student (скачайте и разархивируйте файл).
План рассчитан на учащихся, уже знакомых с HTML. Чтобы уложиться в 40 минут, копируйте предложенные блоки CSS, затем выполняйте изменения и отвечайте на вопросы. Переписывать весь код вручную не требуется.
| Время | Действие |
|---|---|
| 0–4 | Открыть страницы и изучить структуру |
| 4–11 | Подключить внешний CSS к трём страницам |
| 11–20 | Оформить блоки и изменить отступы |
| 20–24 | Добавить внутренний CSS |
| 24–27 | Применить inline CSS |
| 27–35 | Выполнить опыт с Box Model |
| 35–40 | Проверить сайт и объяснить результат |
1. Изучите исходные страницы · 4 минуты
- Откройте
student/index.htmlв браузере и редакторе. - Перейдите по ссылкам Home → Events → Projects. Все страницы пока используют стандартное оформление браузера.
- Найдите в коде семь элементов из таблицы. Покажите, какие блоки вложены в другие.
| Элемент | Назначение в этом сайте |
|---|---|
| header | Название страницы и девиз |
| nav | Ссылки между страницами |
| main | Основное содержимое страницы |
| section | Тематическая группа материалов с заголовком |
| article | Самостоятельная карточка проекта или события |
| aside | Дополнительное объявление |
| footer | Информация внизу страницы |
Вопрос: обязательно ли aside должен находиться справа? Запишите предположение. Его смысл — дополнительное содержание; расположение задаётся CSS.
2. Внешний CSS · 7 минут
- В каждом из трёх HTML-файлов внутри
headвместо комментария STEP 2 вставьте:
<link rel="stylesheet" href="styles.css">
Откройте styles.css в той же папке. Добавьте следующий код, сохраните все файлы и обновите страницы.
/* 1. Page */
body {
margin: 0;
font-family: Arial, sans-serif;
line-height: 1.5;
background-color: #f2f6f5;
color: #243b35;
}
header {
padding: 24px;
background-color: #286d60;
color: white;
text-align: center;
}
nav {
padding: 12px;
background-color: #194b42;
text-align: center;
}
nav a {
display: inline-block;
margin: 4px;
padding: 8px 12px;
color: white;
border: 1px solid white;
border-radius: 6px;
text-decoration: none;
}
nav a:hover, nav a:focus-visible {
background-color: #347c6e;
}
Сделайте самостоятельно: замените background-color у header на #304f85. Обновите все три страницы и убедитесь, что изменились все шапки. Затем верните #286d60.
Запишите: сколько CSS-файлов пришлось изменить? Почему этот способ удобен для нескольких страниц?
3. Оформите блоки · 9 минут
В конец styles.css добавьте код. Он показывает границы вложенных блоков.
/* 2. Boxes */
main {
max-width: 900px;
margin: 20px auto;
padding: 16px;
border: 2px solid #286d60;
background-color: #e3eeeb;
}
section {
margin: 0 0 16px;
padding: 16px;
border: 2px solid #729e93;
background-color: white;
}
article {
margin: 12px 0;
padding: 12px;
border: 2px solid #c7dcd6;
background-color: #f4f8f7;
}
aside {
margin: 16px 0 0;
padding: 16px;
border: 2px dashed #aa7415;
background-color: #fff5d9;
}
footer {
margin-top: 24px;
padding: 16px;
border-top: 3px solid #286d60;
background-color: #dce9e5;
text-align: center;
}
Сделайте самостоятельно на странице Home:
- У
articleвременно изменитеpadding: 12pxнаpadding: 24px. Где увеличилось расстояние? - Верните padding. Измените
margin: 12px 0наmargin: 24px 0. Что изменилось теперь? Верните исходное значение. - У
asideизмените границу сdashedнаsolid, сравните и вернитеdashed.
В записи margin: 12px 0 первое значение относится к верху и низу, второе — к левому и правому краям. Вертикальные margin соседних обычных блоков могут схлопываться: зазор не всегда равен их сумме.
Заполните: padding — расстояние между ______ и ______; margin — отступ ______ границы; border — ______.
Проверка: видны внешняя рамка main, рамка section, две карточки article и отдельное объявление aside. Header, nav и footer тоже имеют внутренние отступы. Не каждому блоку обязательно задавать все четыре свойства.
4. Внутренний CSS · 4 минуты
Только в events.html замените комментарий STEP 4 внутри head следующим кодом. Разместите его после подключения внешнего файла.
<style>
.event-highlight {
background-color: #fff0c2;
border: 2px solid #a76c10;
}
</style>
У первой карточки уже указан class="event-highlight". Обновите страницу: её фон и граница изменились, а другие карточки сохранили общее оформление.
Сделайте самостоятельно: измените цвет фона этой карточки на #ffe3c2, проверьте и верните исходный цвет.
Объясните: почему этот стиль не применяется на Home и Projects? Здесь класс .event-highlight специфичнее селектора article. Внутренний CSS не имеет безусловного приоритета над внешним только из-за способа подключения.
5. Inline CSS · 3 минуты
В events.html найдите абзац Registration closes on Friday. внутри aside. Замените его:
<p style="color: #9b241c; font-weight: bold;">
Registration closes on Friday.
</p>
Проверка: выделился только этот абзац. Заголовок Club notice не изменился.
Объясните: почему неудобно таким способом оформлять 20 одинаковых объявлений? Inline CSS здесь применяется для учебного сравнения. Для повторяющегося оформления используйте класс во внешнем файле.
6. Исследуйте Box Model · 8 минут
На странице projects.html вторая карточка имеет class="box-lab". Добавьте в конец внешнего CSS:
/* 3. Box Model experiment */
.box-lab {
box-sizing: content-box;
width: 240px;
padding: 20px;
border: 4px solid #286d60;
margin: 16px;
}
- При
content-boxширина 240 px относится только к содержимому. Вычислите ширину от внешнего края левой границы до внешнего края правой:240 + 20 + 20 + 4 + 4 = ____ px. - Добавьте левый и правый margin:
____ + 16 + 16 = ____ px. Это суммарная заданная ширина содержимого, padding, border и горизонтальных margin в данном опыте. - Нажмите F12, выберите инструмент выбора элемента и щёлкните по карточке Reading Journal. Найдите схему Box Model в панели стилей или вычисленных свойств. Сверьте content, padding, border и margin со своими числами.
- Замените только
box-sizing: content-boxнаbox-sizing: border-box. Теперь 240 px включают содержимое, padding и border. Вычислите ширину содержимого:240 − 20 − 20 − 4 − 4 = ____ px. Общая заданная ширина с margin:240 + 16 + 16 = ____ px. - Сохраните
border-box. Временно увеличьте padding до 30 px. Изменилась ли ширина по внешним краям границы? Что произошло с областью содержимого? Верните padding 20 px.
Поясните партнёру: content → padding → border → margin. Фон элемента окрашивает область padding; margin остаётся снаружи его границы.
Упражнение выполняйте в обычном окне настольного браузера: фиксированная ширина этой карточки выбрана для расчёта. Здесь не требуется создавать адаптивную раскладку.
7. Проверьте результат · 5 минут
Проверьте работу в паре. На каждое утверждение покажите подтверждение в браузере или коде.
- Все три страницы открываются через меню.
- Один styles.css подключён к трём страницам и оформляет их одинаково.
- Внутренний CSS выделяет первую карточку Events.
- Inline CSS выделяет только текст объявления Events.
- Используются все семь элементов: header, nav, main, section, article, aside, footer.
- Я могу показать content, padding, border и margin карточки.
- Я могу объяснить оба расчёта ширины.
Сдайте: папку student с тремя HTML-файлами и styles.css; короткие ответы на вопросы шагов 2, 3, 4, 5 и расчёты шага 6 — в тетради или отдельном текстовом файле.
Выходной вопрос: необходимо поменять шрифт на всех страницах, фон одной карточки Events и цвет одного абзаца. Покажите, где в вашей работе находится каждое из этих правил.