Студенты, занимающиеся фронтенд-разработкой, знают, что основными компонентами веб-страницы являются 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 станция перевода