--- title: Semantics slug: Glossary/Semantics translation_of: Glossary/Semantics original_slug: Словарь/Semantics ---
В программировании, Семантика означает значение фрагмента кода - например, «к какому результату приведет выполнение этой строки JavaScript?», или «каково предназначение или какая роль у этого элемента HTML» (а не «как он выглядит ?».)
Для JavaScript, рассмотрим функцию, которая принимает строку в качестве параметра, и возвращает элемент {{htmlelement("li")}} с этой строкой в качестве свойства textContent
. Нужно ли вам смотреть на код, чтобы понять, что делает функция build('Peach')
, или createLiWithContent('Peach')
?
Для CSS, рассмотрим стилизацию списка элементов li
, в которых содержаться разные виды фруктов. Вы бы поняли, какая часть DOM выбрана с помощью селектора div > ul > li
, или .fruits__item
?
В HTML, например, элемент {{htmlelement("h1")}} является семантическим, что дает тексту внутри него роль (или значение) "заголовка первого уровня на вешей странице".
<h1>This is a top level heading</h1>
По умолчанию, стандартные стили большинства браузеров зададут {{htmlelement("h1")}} большой размер шрифта, чтобы он выглядел как заголовок (хотя вы можете стилизировать его так, как сочтете нужным).
С другой стороны, вы можете сделать любой элемент похожим на заголовок первого уровня. Рассмотрим следующее:
<span style="font-size: 32px; margin: 21px 0;">Is this a top level heading?</span>
Эти стили сделают элемент похожим на заголовок первого уровня, но он не будет иметь семантического значения, поэтому не получит никаких дополнительных преимуществ, описанных выше. Поэтому хорошей практикой является выбор подходящего элемента HTML для каждого отдельного случая.
HTML должен предоставлять структуру информации, которой он будет наполняться, и не должен полагаться на стандартные свойтва стилей. Стилизация (то, как эта информация должна выглядеть), полностью ложиться на плечи CSS.
Некоторые из преимуществ использования семантической разметки:
div
гораздо проще найти блок семантического кода, чем блок с семантическим классом или классом, принадлежащим пространству имен.Принимая решение об использовании той или иной разметки, спросите себя: «Какой элемент (элементы) лучше всего описывает / представляет данные, которые я собираюсь использовать?» Например, это список данных ?; упорядоченный, неупорядоченный ?; это статья с разделами и дополнительной информацией ?; в ней перечислены определения ?; это рисунок или изображение, которое требует подписи ?; должен ли он иметь собственные header
и footer
?; и т.п.
Вот некоторые из примерно 100 доступных семантических элементов: