Урок 5 из 8 · 20 мин · обновлено
Понимать свой код: минимум HTML, CSS и JavaScript
Из каких частей состоит HTML-файл, за что отвечают разметка, стили и скрипт, как найти в коде нужное место и как попросить нейросеть объяснить непонятный фрагмент.
Зачем понимать, если пишет нейросеть
Можно ни разу не заглянуть в код — пока всё работает. Но как только нужно что-то найти, поменять мелочь или описать ошибку, понимание устройства файла экономит часы. Учить программирование для этого не нужно: достаточно знать, где что лежит.
Три языка в одном файле
В файле трекера живут три разных языка, и у каждого своя работа:
| Язык | Отвечает за | Где в файле |
|---|---|---|
| HTML | что есть на странице: заголовок, список, поле, кнопка | внутри <body> |
| CSS | как это выглядит: цвета, отступы, шрифты | внутри <style> в начале файла |
| JavaScript | как это себя ведёт: что происходит при нажатии, что сохраняется | внутри <script> в конце файла |
Если хочется поменять внешний вид — ищите в <style>. Поведение — в <script>. Текст и элементы — в <body>.
Разметка: что есть на странице
<h1>Мои привычки</h1>
<p id="today"></p>
<div id="list"></div>
<form id="add-form">
<input type="text" id="new-habit" placeholder="Новая привычка" required>
<button type="submit">Добавить</button>
</form>
Разметка состоит из тегов: <h1> — заголовок, <p> — абзац, <div> — контейнер, <form> — форма с полем <input> и кнопкой <button>.
Обратите внимание на id. Это имя элемента, по которому код его находит. Контейнер id="list" пока пустой: карточки привычек в него нарисует JavaScript.
Стили: как это выглядит
.habit { display: flex; gap: 12px; padding: 12px; border: 1px solid #ddd; border-radius: 12px; }
.habit.done { background: #e8f5e9; border-color: #66bb6a; }
Правило состоит из селектора — к чему применить — и свойств в фигурных скобках. .habit — все элементы с классом habit, то есть карточки. .habit.done — карточки, у которых есть ещё и класс done, то есть отмеченные: у них светло-зелёный фон.
Хотите другой зелёный — поменяйте #e8f5e9 на другой цвет вручную. Для такой мелочи нейросеть не нужна.
Скрипт: как это себя ведёт
Код трекера держится на нескольких частях. Данные — список привычек:
let habits = JSON.parse(localStorage.getItem('habits')) || [
{ name: 'Зарядка', days: [] },
{ name: 'Читать 20 минут', days: [] },
{ name: 'Выпить 2 литра воды', days: [] }
];
У каждой привычки название и список дней, когда она выполнена. Строка читается так: «возьми сохранённые привычки из хранилища браузера, а если их там нет — используй три стандартные».
Сохранение — одна короткая функция:
function save() {
localStorage.setItem('habits', JSON.stringify(habits));
}
localStorage — хранилище в браузере. save() кладёт туда весь список, а при следующем открытии страницы строчка выше его достанет. Поэтому галочки не пропадают при обновлении.
Остальное устроено так же: функция render() рисует карточки в контейнер list, функция toggle() ставит или снимает отметку за сегодня, а обработчик формы добавляет новую привычку. После любого изменения код вызывает save() и render() — сохранить и перерисовать.
Как найти нужное место
- Поиск по тексту. Нажмите Ctrl + F в Блокноте и ищите видимый текст: «Зарядка», «Добавить». Так вы найдёте и разметку, и данные.
- По id. Нашли в разметке
id="list"— ищите'list'в скрипте: там код, который работает с этим элементом. - Попросите объяснить. Непонятный кусок вставьте в чат:
Объясни построчно, как новичку, что делает этот фрагмент.
Без терминов, которые не объяснил.
<фрагмент кода>
Ещё полезная просьба при каждом шаге: «Добавь в код короткие комментарии на русском, что делает каждая часть». Комментарии начинаются с // и браузером игнорируются, а вам помогают ориентироваться.
Попробуйте сами. Найдите в своём файле, где заданы три стандартные привычки, и вручную замените их на свои. Затем найдите правило стиля для отмеченной карточки и поменяйте цвет. Проверьте результат в браузере. Если стандартные привычки не поменялись — подумайте, почему, прежде чем открывать подсказку.
Подсказка, если привычки не поменялись
Стандартные привычки используются, только если в хранилище браузера ничего нет. А там уже лежит ваш сохранённый список — с прошлых запусков. Код честно загружает его и до стандартных не доходит.
Два способа проверить замену:
- Открыть файл в другом браузере — у него своё хранилище, пустое.
- Очистить хранилище: F12 → вкладка Application (в Firefox — Storage) → Local Storage → удалить запись
habits, затем обновить страницу.
Это хороший пример того, зачем понимать код: без знания, как устроена загрузка, легко решить, что «нейросеть что-то сломала», хотя всё работает правильно.
Мини-тест: проверьте себя
Закрепите урок: несколько вопросов, разбор ответов — в конце.
-
Где искать, чтобы поменять цвет отмеченной привычки?
За внешний вид отвечает CSS. Цвет отмеченной карточки задан правилом для класса, например .habit.done.
-
Что делает строка document.getElementById('list')?
id — имя элемента на странице. По нему код находит нужное место: например, контейнер, в который рисует карточки.
-
Зачем в трекере функция save()?
save() кладёт данные в localStorage — хранилище браузера. Поэтому галочки не пропадают при обновлении страницы.
-
Как попросить нейросеть объяснить непонятный кусок кода?
Нейросеть хорошо объясняет код, если дать ей конкретный фрагмент и попросить уровень объяснения.