Студенты, занимающиеся фронтенд-разработкой, знают, что основными компонентами веб-страницы являются HTML, JavaScript и CSS. Разработчики обычно больше внимания уделяют JavaScript и CSS, практикуя различные языковые спецификации и шаблоны проектирования. Внимания к HTML, очевидно, меньше, пока вы можете создать интерфейс, нарисованный дизайнером, все будет хорошо, и вас не сильно волнует, является ли HTML стандартизированным и разумным. Итак, везде можно наблюдать следующую ситуацию:
- кнопка кликабельна
<div>
вместо<button>
элемент - Название
<div>
вместо элемента заголовка (<h1>
,<h2>
так далее) -
<input>
Соответствующая текстовая метка использует<div>
вместо<label>
- Поле ввода также использует связанное событие клавиатуры
<div>
, вместо<input>
вы видели? один ход<div>
Иди мир! Есть ли какие-либо проблемы с этим? Это не кажется большой проблемой, в конце концов, страница выглядит в соответствии с дизайном и может нормально взаимодействовать. Но задумывались ли вы об этом, если<div>
Может решить все, зачем вам десятки или сотни других тегов? Речь идет о семантике HTML.
что такое семантика
Семантика означает, что элементы HTML имеют соответствующие значения. Он используется для описания содержимого элемента или его отношения к другим элементам. В HTML, кроме<div>
а также<span>
, которые в основном являются семантическими элементами.
Степень представления имен тегов также различна, например,<section>
Сравнивать <article>
Описание содержания еще более расплывчато.<section>
также является семантическим, так как указывает, что контент должен принадлежать группе. а также<article>
Не только означает, что его содержимое принадлежит группе, но и статье.
Чтобы еще больше проиллюстрировать важность семантики, ниже приведены примеры элементов заголовка и кнопки.
элемент заголовка
<h1>
Является заголовком страницы плюс внизу<h2>
Иерархия страницы формируется.
<!-- h1, 最重要的部分 -->
<h1>当你的 HTML 里全是 div,那你就要小心了</h1>
<!-- "什么是语义化" 是 "当你的 HTML 里全是 div,或许该反思下了" 的子标题 -->
<h2>什么是语义化</h2>
<!-- "标题元素" 是 "什么是语义化" 的子标题-->
<h3>标题元素</h3>
Во многих редакторах форматированного текста оглавление содержимого может быть создано автоматически с использованием соответствующей структуры заголовков. Например, структура каталогов этой статьи выглядит следующим образом:
-
<h1>
: Будьте осторожны, когда ваш HTML полон div-
<h2>
: что такое семантика-
<h3>
: элемент заголовка -
<h3>
: кнопка
-
-
<h2>
: немантические элементы -
<h2>
: Суммировать
-
Как видите, сам HTML передает структурную информацию всей статьи. И наоборот, если все используют<div>
, становится так:
-
<div>
: Будьте осторожны, когда ваш HTML полон div -
<div>
: что такое семантика -
<div>
: элемент заголовка -
<div>
: кнопка -
<div>
: несемантические элементы -
<div>
: Суммировать
из-за <div>
Никакого смысла, так что это плоская структура. При правильном HTML DOM будет четким и структурированным.
кнопка
Назначение кнопки — отправить форму или изменить состояние элемента. По определению кнопка имеет следующие характеристики:
- получить фокус
- Активируется нажатием пробела или клавиши ввода
- Активируется щелчком мыши
когда вы используете<div>
При привязке события клика для имитации кнопки вы не можете его использовать<button>
Те семантические особенности взаимодействия, которые приходят с ними естественным образом. Вам также необходимо реализовать эти функции вручную:
- состояние фокуса
- взаимодействие с клавиатурой
- взаимодействие с мышью
Более того, когда программы чтения с экрана сталкиваются с<button>提交</button>
Этот элемент, который распознает семантику, сообщает пользователю, что это кнопка отправки. если только<div>
, читатель не подумает, что это кнопка.
Когда мы используем семантические элементы HTML, мы придаем смысл содержимому, и оно оживает.
несемантические элементы
Как упоминалось ранее,<div>
а также<span>
являются не семантическими элементами.<div>
не придает никакого значения содержанию, это просто<div>
. Конечно, это не совсем точно, потому что<div>
а также<span>
Есть еще небольшая разница между:
-
<div>
является блочным элементом -
<span>
является встроенным элементом и должен быть помещен внутри других элементов, таких как<p><span class="dropcap">I</span>nline elements</p>
Если вы не можете найти соответствующий элемент HTML для представления содержимого, вы можете использовать<div>
или <span>
. Так как он разработан<div>
а также <span>
, естественно имеют свое место. В конце концов, не каждый элемент HTML нуждается в дополнительной семантике.
Общий принцип заключается в использовании соответствующих семантических элементов для максимально полного представления содержания. Следующим лучшим способом является использование ярлыков с менее ясным значением. Наконец рассмотрите возможность использования<div>
а также <span>
.
Суммировать
Хотя использование семантических HTML-элементов не принесет существенной пользы вашему проекту, я все же рекомендую его. По крайней мере, семантические HTML-страницы приводят к лучшему рейтингу SEO, лучшему удобству чтения с экрана и более читаемому коду. Если вы начинающий кодер, я думаю, вы согласитесь со мной.
Эта статья была впервые опубликована в1024 станция перевода