Как создать полный веб‑сайт с нуля — руководство для начинающих
О чём это руководство
В этом руководстве вы пройдёте путь от пустого файла до готовой страницы, сверстанной по макету. Мы используем только стандартные технологии: HTML для структуры, CSS для стилей, JavaScript (и jQuery) для логики и межфреймовых эффектов. Это хорошая отправная точка, если вы читали базовые руководства по HTML и CSS, но не знаете, как собрать всё вместе в большой проект.
Кого это руководство ждёт:
- абсолютных новичков, которые хотят увидеть практический пример;
- тех, кто знает базовый HTML/CSS, но не уверен, как организовать код проекта;
- людей, желающих научиться небольшому JavaScript‑интерактиву (смена изображений).
Краткое определение терминов:
- HTML — язык разметки для структуры страницы.
- CSS — каскадные таблицы стилей для внешнего вида элементов.
- JavaScript — язык программирования для поведения и взаимодействий на странице.
- jQuery — облегчённая библиотека JavaScript, упрощающая работу с DOM.
Дизайн и ресурсы

В руководстве использован готовый макет сайта; доступны варианты изображений и PSD‑файлы, если вы хотите сверстать страницу максимально близко к оригиналу.
PSD‑файл содержит слои, сгруппированные и помеченные цветом — это удобно для точного сопоставления верстки и графики.
Шрифты, использованные в макете: Font Awesome (иконы), PT Serif и Myriad Pro. Myriad Pro обычно доступен в Adobe CC, но для веба мы используем доступные веб‑шрифты (PT Serif и PT Sans через Google Fonts), о чём расскажем ниже.
Important: вам не нужен Photoshop, чтобы пройти этот урок — достаточно текстового редактора и браузера.
Начальный файл и базовая структура
Создайте новый файл и сохраните его как index.html. Это «стандартное» имя для главной страницы на большинстве серверов.
Вот минимальная HTML‑структура, с которой мы начнём. Комментарии внутри переведены на русский, чтобы легче было понять, что делает каждый блок.
Noise Media
Что делает этот шаблон:
- задаёт минимума структуры HTML;
- задаёт заголовок страницы
Noise Media ; - подключает Font Awesome и jQuery через CDN;
- резервирует места для CSS и JavaScript.
Откройте файл в браузере — вы увидите пустую страницу с установленным заголовком в окне/вкладке.
Примечание о title
Текст в теге
Шапка сайта (Header)
Добавим верхнюю серую полоску и основной блок с логотипом и навигацией.
Вставьте внутри body в самом верху:
CSS для этого элемента (добавьте в style):
html, body {
margin: 0;
padding: 0;
font-family: 'Helvetica', 'Arial'; /* временные начальные шрифты */
}
#top-bar {
width: 100%;
background: #F1F1F1; /* светло‑серый */
border-bottom: 1px solid #D4D4D4; /* затемнённая линия внизу */
height: 25px;
}Пояснение: селектор с решёткой (#top-bar) указывает на id. Для повторяющихся стилей используйте class (с точкой), для уникальных — id.
Контейнер фиксированной ширины
Добавим контейнер .normal-wrapper шириной 900px, чтобы центрировать содержимое:
.normal-wrapper {
width: 900px;
margin: 0 auto;
padding: 15px 40px;
background: red; /* временно, чтобы увидеть размеры */
overflow: auto;
}Тёмно‑красный фон можно убрать позже; он помогает понять расположение блоков.
Логотип
Внутри .normal-wrapper добавьте HTML для логотипа:
Noise Media
CSS:
.logo-icon {
color: #000000;
font-size: 60pt;
float: left;
}
h1 {
float: left;
margin: 21px 0 0 25px;
}Если хотите другую иконку, замените класс fa-volume-down на нужный с сайта Font Awesome.
Навигация
Добавим простой горизонтальный navbar через ul:
CSS:
#navbar {
list-style-type: none;
margin: 29px 0 0 0;
padding: 0;
float: right;
font-size: 16pt;
}
#navbar li {
display: inline;
}
#navbar li a:link, #navbar li a:visited, #navbar li a:active {
text-decoration: none;
color: #000000;
padding: 0 16px 0 10px;
margin: 0;
border-right: 2px solid #B4B4B4;
}
#navbar li a.last-link {
border-right: 0px;
}
#navbar li a:hover {
color: #EB6361;
}Обратите внимание: селекторы состояния ссылки (a:link, a:visited и т.д.) предназначены для управления внешним видом ссылок в разных состояниях.
Добавим тонкую цветную полосу под шапкой:
#top-color-splash {
width: 100%;
height: 4px;
background: #EB6361; /* акцентный цвет */
}Результат: верхняя часть сайта готова и выглядит почти как макет.
Главная область (Above the fold)
Раздел выше сгиба содержит приветствие и изображение справа. Мы условно делим блок примерно в соотношении 40%/60% (треть/две трети).
HTML:
Welcome!
Noise Media is a technology company specialising in tech reviews.
We’re very good at what we do, but unfortunately, we are not a real company.
Make sure you visit makeuseof.com for the full tutorial on how to build this website.
Alternatively, check out our review of the Panasonic G80 shown on the right!
CSS:
.one-third {
width: 40%;
float: left;
box-sizing: border-box;
margin-top: 20px;
}
.two-third {
width: 60%;
float: left;
box-sizing: border-box;
padding-left: 40px;
text-align: right;
margin-top: 20px;
}
.featured-image {
max-width: 500px;
}
.no-margin-top {
margin-top: 0;
}Ключевой момент: box-sizing: border-box гарантирует, что указанные ширины включают padding и borders — полезно при расчёте сетки.
Блок с цитатой
Добавим тёмный блок с белым текстом — простой способ выделить отзыв:
“makeuseof is the best website ever”
Joe Coburn
#quote-area {
background: #363636;
color: #FFFFFF;
text-align: center;
padding: 15px 0;
}
h3 {
font-weight: normal;
font-size: 20pt;
margin-top: 0px;
}
h4 {
font-weight: normal;
font-size: 16pt;
margin-bottom: 0;
}Блок иконок
Три колонки с иконками и краткими описаниями. Для одинаковых блоков удобно использовать class вместо id.
HTML:
YouTube
Checkout our YouTube channel for more tech reviews, tutorials and giveaways!
Reviews
If you’re planning to buy a new gadget, check here first. We’ll give you in-depth reviews of the latest devices.
Buying Guides
At Buying Guides we strive to provide readers with the tools to get the best stuff for the lowest amount of money.
CSS:
.icon-outer {
box-sizing: border-box;
float: left;
width: 33.33%;
padding: 25px;
margin: 0;
text-align: center;
}
.icon-circle {
background: #EEEEEE;
color: #B4B4B4;
width: 200px;
height: 200px;
border-radius: 200px;
margin: 0 auto;
border: 2px solid #D6D6D6;
box-sizing: border-box;
font-size: 75pt;
padding: 30px 0 0 0;
cursor: pointer;
}
.icon-circle:hover {
color: #FFFFFF;
background: #EB6361;
}
h5 {
margin: 15px 0 10px 0;
font-size: 20pt;
}Подвал сайта (Footer)
Простой серый блок внизу страницы:
#footer {
width: 100%;
background: #F1F1F1;
border-top: 1px solid #D4D4D4;
height: 150px;
}Подключение веб‑шрифтов
Myriad Pro — не всегда доступен как веб‑шрифт, поэтому используем Google Fonts: PT Sans для заголовков и PT Serif для основного текста.
Добавьте в CSS:
@import url('https://fonts.googleapis.com/css?family=PT+Sans');
@import url('https://fonts.googleapis.com/css?family=PT+Serif');
h1, h2, h4, h5, h6 {
font-family: 'PT Sans', 'Helvetica', 'Arial';
}
body {
font-family: 'PT Serif', 'Helvetica', 'Arial';
}Примечание: h3 мы оставляем на PT Serif, чтобы цитата выглядела более «книжно».
Простая анимация — прокрутка изображений (грид‑галерея)
Добавьте ещё две изображения (Image_2.jpg и Image_3.jpg) и используйте JavaScript с jQuery, чтобы периодически менять видимую картинку.
HTML (в блоке .two-third заменяем один img на три):
CSS для скрытия:
.hidden {
display: none;
}JavaScript (вставьте в нижний script):
$(document).ready(function() {
// выполнится после загрузки DOM
var time = 2500; // интервал в миллисекундах
var $im1 = $('#f-image-1');
var $im2 = $('#f-image-2');
var $im3 = $('#f-image-3');
setInterval(function() {
changeImage();
}, time);
var currentImage = 1;
function changeImage() {
switch (currentImage) {
case 1:
$im1.hide();
$im2.show();
$im3.hide();
currentImage = 2;
break;
case 2:
$im1.hide();
$im2.hide();
$im3.show();
currentImage = 3;
break;
default:
$im1.show();
$im2.hide();
$im3.hide();
currentImage = 1;
}
}
});Вы можете улучшить эффект, применив jQuery.fadeIn() и fadeOut(), чтобы получить плавное затухание.
Заключение основной части
На этом базовая страница готова: структура, стили и небольшой JavaScript‑фрагмент. Дальше можно улучшать типографику, адаптивность и UX.
Дополнительная ценность: практики, чеклисты и методики развития сайта
Ниже — набор практических материалов, которые помогут вам развивать этот проект дальше. Выберите подходящие разделы в зависимости от ваших целей.
Быстрая методология (mini‑methodology)
- Прототип: подготовьте макет/скетч (PSD, Figma или даже бумажный эскиз).
- Структура: создайте семантический HTML с правильной иерархией заголовков и разделов.
- Стили: опишите базовую сетку и типографику, подключите веб‑шрифты.
- Поведение: добавьте JavaScript/анимации только там, где они добавляют пользу.
- Тестирование: проверяйте в браузерах, на мобильных устройствах и с выключенным JS.
- Оптимизация: минимизация CSS/JS, сжатие изображений, подключение через CDN.
Критерии приёмки (что должно работать, чтобы считать задачу выполненной)
- Страница открывается без ошибок в актуальных версиях Chrome, Firefox, Edge и Safari.
- Структура HTML валидна и читабельна для поисковых роботов.
- Навигация отображается и ссылки кликаются.
- Слайдер изображений переключается по таймеру (либо по нажатию, если добавлена кнопка).
- Шрифты загружаются с Google Fonts, и заголовки/текст выглядят предсказуемо.
Роль‑ориентированные чеклисты
Для разработчика‑верстальщика:
- валидный HTML
- корректная работа float/box-sizing
- адаптивность началана (meta viewport и медиазапросы в будущем)
Для фронтенд‑разработчика (JS):
- jQuery подключён и доступен
- слайдер работает на setInterval
- нет глобальных конфликтов переменных
Для дизайнера/контентщика:
- изображения оптимизированы (размеры и формат)
- текстовые блоки вычитаны и локализованы
Шпаргалка: часто используемые CSS‑свойства (cheat sheet)
- box-sizing: border-box — полезно для расчёта ширины блоков;
- display: inline/block/inline-block/flex — управление потоком элементов;
- float: left/right + clear — старый способ колонок (в проекте используется float);
- border-radius — радиус скругления углов;
- :hover, :active, :visited — псевдоклассы для ссылок;
- @media (min-width / max-width) — медиазапросы для адаптива.
Когда этот подход не подходит (контрпримеры)
- Если нужен сложный SPA (одностраничное приложение) с маршрутизацией и состоянием — лучше использовать фреймворки (React/Vue/Angular) или статический генератор сайтов.
- Если проект должен быть полностью адаптивным под все устройства — текущая фиксированная ширина (900px) не подходит; потребуется мобильная вёрстка и медиазапросы.
- Если ожидается высокий трафик и необходимость масштабирования бэкенда — нужно подключать серверную часть и оптимизировать доставку статических ресурсов (CDN, кэш).
Альтернативные подходы
- Использовать Flexbox или CSS Grid вместо float — упрощает создание адаптивной сетки.
- Отказаться от jQuery в пользу чистого (vanilla) JavaScript — современные браузеры поддерживают всё необходимое.
- Превратить проект в статический сайт на Jekyll/Gatsby/Hugo для удобной генерации статичных страниц и блога.
Критические шаги безопасности и приватности
- Храните только необходимые данные на клиенте; не вставляйте чувствительные токены в JS.
- Если подключаете сторонние скрипты (CDN), проверяйте доверенность источника.
Тесты приёмки и acceptance criteria
- Откройте страницу в трёх браузерах и на мобильном: нет развалившейся верстки.
- В консоли разработчика нет ошибок JavaScript при загрузке.
- Слайды переключаются корректно и без дергания.
1‑строчный глоссарий
- DOM — объектная модель документа; HTML становится деревом узлов.
- CDN — сеть доставки контента; хранит файлы ближе к пользователю.
- Webfont — шрифт, загружаемый в браузер с сервера.
Советы по отладке
- Используйте инструменты разработчика (DevTools) для просмотра DOM, стилей и консоли.
- Временный фон (background: red) помогает быстро понять размер блока.
- При некорректном позиционировании — проверьте float/clear и box-sizing.
Быстрый roadmap для развития проекта (высокоуровневый)
- Сделать адаптивную версию (медиазапросы, мобильная навигация).
- Добавить семантические теги (
, - Подключить систему сборки (Webpack, Parcel) и минификацию.
- Подключить CMS или статический генератор для публикации статей.
- Настроить CI/CD и деплой на хостинг (Netlify, Vercel, GitHub Pages).
Социальный предпросмотр и анонс
OG title и описание можно использовать так:
- OG title: Создание сайта с нуля — полное руководство
- OG description: Пошаговый туториал: HTML, CSS, JavaScript, jQuery, шаблоны и чеклисты. Создайте рабочий сайт за один проход.
Короткий анонс (100–200 слов):
Создайте свой первый рабочий сайт: следуйте пошаговому руководству, включающему шаблон HTML, CSS‑стили и простой JavaScript‑слайдер. В уроке — готовые блоки (шапка, главный экран, цитата, иконки, подвал), подключение Font Awesome и Google Fonts, а также дополнительные чеклисты и рекомендации по развитию проекта. Подходит для новичков и тех, кто хочет собрать готовую страницу и понять практические шаги разработки.
Куда двигаться дальше
Предложения для следующего шага:
- Сделайте адаптивную версию (mobile first) с помощью медиазапросов;
- Замените float на Flexbox или Grid для более простой верстки;
- Реализуйте прогрессивное улучшение: сайт должен быть функционален без JS;
- Попробуйте добавить серверную часть (Node/Python) и отдавать данные через API (JSON).
Ресурсы и полезные ссылки
- Google Fonts — подключение веб‑шрифтов;
- Font Awesome — библиотека иконок;
- Руководства по HTML/CSS/JS для базовых знаний;
Итог
Вы научились: собрать страницу из нуля, подключить шрифты и иконки, реализовать простой слайдер изображений и создать базовый макет. Далее остаётся только улучшать дизайн, тестировать и адаптировать сайт под реальные устройства.
Ключевые выводы
- Простая статическая страница — отличный старт для изучения фронтенда.
- box-sizing и применение классов/идентификаторов помогают контролировать верстку.
- jQuery упрощает демонстрационные анимации, но современные проекты часто обходятся без него.
Спасибо за прохождение руководства — продолжайте экспериментировать и учиться!
Похожие материалы
Как настроить новый iPhone — быстро
Как настроить родительский контроль на iPhone и iPad
Как увидеть пароль Wi‑Fi на Mac
Как пользоваться Screen Time на iPhone
Как заблокировать приложения на iPhone