Семантическая вёрстка
Семантическая вёрстка HTML-документа подразумевает использование тегов по прямому назначению, т.е. если вам нужен заголовок — то вот тег <h1>
и собратья, необходимо табличное представление данных — используйте тег <table>
и только его.
Иногда, избавляясь от табличной верстки, доходят до абсурда, и тег
<table>
становится изгоем, и его перестают использовать даже для табличного представления данных. Не стоит повторять эту ошибку.
Забегая чуть-чуть вперёд, стоит упомянуть теги из спецификации HTML5: <article>
, <aside>
, <header>
, <footer>
, <menu>
, <section>
и т.д. — используйте их, не бойтесь.
Не бояться — это правильно, но использовать тоже надо с умом. Рекомендую ресурс https://html5doctor.com/ — очень хорошо и подробно расписано о нововведениях спецификации HTML5.
И ещё пару интересных ресурсов в нагрузку:
https://doka.guide/ — справочник для веб-разработчиков
https://web.dev/explore — тут целое сообщество
Старайтесь избегать избыточных элементов на странице, большинство HTML-страниц грешат лишними блочными элементами:
Данную конструкцию можно легко упростить, и при этом код станет более читаемым, изменения в CSS будут минимальными, или даже не потребуются:
В английском языке есть термин «divits» – сим термином награждают HTML-разметку с чрезмерным использованием div’ов без потребности, я же называю такие творения «дивными». Обычно таким грешат новички, которые для применения стилей CSS оборачивают элементы в div’ы, что и приводит к их размножению без нужды.
Ещё одним обязательным пунктом для создания «правильного» HTML является использование названий классов и идентификаторов, которые однозначно говорят нам о содержимом элемента, а не о каких-либо нюансах оформления. Приведу пример:
Плохо | |
---|---|
| в какой-то момент захотите дизайн через CSS поменять – и элемент с классом «red» станет синим; или возитесь, бегаете по всем страницам и меняйте red на blue, чтоб потом ещё раз начать по новой |
| сегодня широкий, а завтра? |
| наверное, это элемент с высотой 90px и шириной 490px; или я ошибаюсь? а в смартфоне тот же класс влезает в экран? |
| ничего не говорящие названия, которые завтра вылетят из памяти |
| иногда встречается для «скинованных» сайтов, но создаются такие классы во имя лени |
| такое тоже встречается и ничем хорошим не пахнет |
И примеры правильного именования:
Хорошо | |
---|---|
| логотип, основной контент |
| меню и подменю |
| чётный и нечётный элементы списка (хотя для подобных задач проще использовать CSS-операторы |
| постраничная навигация |
| информация о лицензировании |
Есть ещё один момент – это форматирование HTML- и CSS-кода. Я не буду заострять на нём внимание, но весь код в книге будет отформатирован отступами, и, возможно, это даст свои плоды в ваших творениях.
Чуть не забыл – не равняйтесь на классы вида
p-X
,m-X
, которые вы встретите в Bootstrap или Tailwind. Концепция «utility first» отлично подходит для CSS фреймворков, но для разработки без использования оных подобное именование неинформативно.
Last updated