Представь веб-страницу как живой организм: HTML — это скелет, который создаёт структуру и держит всё вместе; CSS — это одежда, добавляющая стиль, цвета и форму; а JavaScript — это действия, которые оживляют страницу, позволяя ей реагировать на клики и движения мыши. Вместе они создают гармоничный и функциональный сайт!
Часть 1: HTML
<!DOCTYPE html> — объявляет тип документа как HTML5, указывая браузеру, какую версию использовать.
<html lang="ru">...</html> — корневой тег, задаёт язык страницы (здесь русский).
<head>...</head> — содержит метаданные: <meta charset="UTF-8"> (кодировка для поддержки русских букв), <meta name="viewport" content="width=device-width, initial-scale=1.0"> (адаптация под мобильные устройства), <title>Текст</title> (название вкладки).
<body>...</body> — содержит видимое содержимое: текст, изображения, формы.
Порядок: <!DOCTYPE html> → <html> (с <head> и <body>).
В <head>: порядок — <meta> → <title> → <link> → <style>.
В <body>: <nav>...</nav> (навигация), <h1> до <h6> (заголовки), <p>...</p> (абзацы), <div>...</div> (контейнеры), <a href="ссылка">Текст</a> (ссылки), <img src="путь" alt="описание"> (изображения), <video>...</video> (видео), <form>...</form> (формы), <footer>...</footer> (подвал).
Порядок в <body>: <nav> → контент (заголовки, параграфы) → <form> → <footer>.
Часть 2: CSS
position: sticky; — липкое позиционирование, фиксирует элемент (например, шапку) на месте при прокрутке, пока он в видимой области. Пример: шапка остаётся сверху при прокрутке вниз.
top: 0; — задаёт расстояние от верхнего края (0 пикселей), используется с position: sticky; для фиксации элемента вверху экрана.
z-index: 1000; — определяет порядок наложения элементов; высокое значение (например, 1000) ставит элемент поверх других при перекрытии, предотвращая наложение контента.
font-size: 1.5rem; — размер шрифта в относительных единицах (rem, зависит от размера шрифта корневого элемента, примерно 24px), регулирует высоту текста (например, для лого).
font-weight: 700; — толщина шрифта (700 — жирный, эквивалент bold), делает текст более заметным и читаемым.
display: flex; — превращает элемент в гибкий контейнер, позволяет выстраивать дочерние элементы в ряд или колонку с гибкой настройкой.
justify-content: center; — выравнивает содержимое контейнера по центру горизонтально (например, меню в шапке), распределяя пространство равномерно.
gap: 20px; — задаёт промежуток между элементами внутри flex или grid контейнера, упрощая дизайн без лишних отступов.
margin-top: 10px; — внешний отступ сверху элемента, создаёт пространство между лого и меню или другими блоками.
padding: 20px; — внутренний отступ внутри элемента, добавляет пространство между границами и содержимым для лучшей читаемости.
border-radius: 10px; — закругляет углы элемента (например, блоков проектов), придаёт мягкий и современный вид.
transition: background-color 0.3s ease; — обеспечивает плавное изменение свойства (например, фона при наведении) за 0.3 секунды, улучшая пользовательский опыт.
@media (max-width: 750px) { ... } — адаптивный дизайн, применяет стили, если ширина экрана меньше 750px, адаптируя сайт под мобильные устройства.
Пример: Шапка фиксируется с position: sticky; и top: 0;, меню центрируется с display: flex; и justify-content: center;.
Часть 3: JavaScript (JS)
document.getElementById('id'); — метод, который находит элемент на странице по его уникальному идентификатору (например, 'contact-link'), возвращая объект для манипуляций.
document.createElement('div'); — создаёт новый HTML-элемент (например, <div>) в памяти, который можно добавить на страницу.
element.className = 'class'; — добавляет класс к элементу для применения стилей CSS (например, 'tooltip'), позволяя управлять внешним видом.
element.innerHTML = 'текст'; — устанавливает или изменяет HTML-содержимое элемента (например, добавляет кнопки), заменяя старое содержимое.
document.body.appendChild(element); — добавляет созданный элемент в конец тела страницы, делая его видимым для пользователя.
let isTooltipVisible = false; — объявляет переменную (флаг), которая отслеживает состояние (например, видимость всплывающего окна), изменяемую в коде.
element.addEventListener('mouseenter', () => { ... }); — прикрепляет обработчик события, который срабатывает при наведении мыши, выполняя код (например, показывает окно).
element.style.display = 'block'; — изменяет стиль элемента, делая его видимым (или 'none' — скрытым), управляя отображением на странице.
window.location.href = 'mailto:email'; — перенаправляет браузер по ссылке (например, открывает почтовый клиент), инициируя действие при клике.
Пример: JS создаёт всплывающее окно, использует addEventListener для наведения и style.display для управления видимостью.
Часть 4: Примеры совместимости HTML, CSS и JS
Как они работают вместе:
- <h1>Заголовок</h1> + color: #007bff;: HTML задаёт структуру, CSS добавляет синий цвет, создавая визуальный акцент.
- <button onclick="alert('Привет!')">Нажми</button> + alert: HTML создаёт кнопку, JS добавляет интерактивное действие (всплывающее сообщение).
- @keyframes bounce + element.style.animation: CSS определяет анимацию (подпрыгивание), JS её запускает при наведении.
- <div id="box">Текст</div> + #box { color: #27ae60; } + document.getElementById('box').innerHTML = 'Новый текст';: Комбинация меняет текст и цвет динамически.
Пример из сайта: <button> (кнопки), .tooltip (стили), addEventListener (показ/скрытие).
Этот сайт и конспект был создан при поддержке Grok. Выражаю благодарность Grok и его разработчикам.