Зачем использовать.h1 вместо фактического h1?
в рамках проекта Bootstrap CSS, стили предоставляются для тегов заголовков (H1, H2, H3, H4, H5, H6), но есть также ряд имен классов, основанных на заголовках (.h1, .h2, .h3, .h4, .h5, .h6). Какая польза от использования имени класса H1 без надлежащего использования тега H1? Я думаю, что вы всегда хотите убедиться, что ваш HTML отражает вашу визуальную важность.
любые мысли, объясняющие хорошую причину для использования .h1 вместо использование тега h1 будет оценено по достоинству.
7 ответов:
ты спрашиваешь:
зачем использовать
.h1вместо фактическогоh1?короткий ответ:
цель состоит в том, чтобы использовать оба вместе.
полезность
.h*классы вступают в игру, когда размер типографики в дизайне не коррелирует с семантически соответствующими уровнями заголовка. Разделив проблему на две части, мы можем чисто решить обе.первый бит-это элемент/метка. В '
<h*>' заботится о семантике, доступности и SEO.второй бит-это класс. В '
.h*' заботится о визуальной семантике и типографской иерархии.ответ:
Я считаю, что происхождение этих классов происходит от проекта OOCSS:
последняя итерация OOCSS немного изменилась с тех пор, как я в последний раз смотрел на нее, но вот соответствующий
heading.cssфайл, из более старой фиксации, который имеет.h1-.h6классы, с которыми я знаком:
6e481bc18foocss / core / heading/heading.cssиз комментариев:
.h1-.h6классы должны использоваться для поддержания семантически соответствующих уровней заголовка -не для использования на non-заголовки
...
если необходимы дополнительные заголовки, они должны быть созданы с помощью дополнительные классы, никогда через расположение зависит от стиляПримечание акцент выше.
для хорошего объяснения того, почему можно было бы использовать эти классы, см.:
- stubbornella.org: не стилизуйте заголовки с помощью разделов HTML5 (Николь, автор этого поста, является создателем OOCSS)
- csswizardry.com: прагматичный, практичный размер шрифта в CSS
- Google группы "объектно-ориентированный CSS" заголовки вопрос: основная концепция/использование? (вопрос, который я задал еще в сентябре ' 12)
соответствующие цитаты из приведенных выше ссылок:
1. stubbornella.org
... [HTML5] элементы раздела предназначены для того, чтобы помочь браузеру выяснить, какой уровень заголовка на самом деле, но не обязательно решать, как его стилизовать.
Итак, как мы стилизуем заголовки в мире HTML5?
... Мы не должны использовать элементы секционирования для укладки. Мы должны позволить им выполнять работу, для которой они были разработаны, а именно сортировать дерево документов, и решать проблемы стиля другим способом, который лучше соответствует нашим целям: с помощью простых многоразовых имен классов, которые могут быть применены к любому из наших заголовков независимо от того, насколько глубоко они могут быть в содержании секционирования.
я рекомендую абстрагировать сайт широкие заголовки в классы, потому что тогда они портативны, предсказуемы и сухи. Вы можете называть их как угодно.
2. csswizardry.com
... Назначая класс вместе с каждым заголовком стиль теперь у нас есть эти стили, прикрепленные к очень гибкому селектору, который можно перемещать в любом месте, а не к очень конкретному и неподвижному.
3. groups.google.com
вот пример использования псевдо-html5 (h / t Jamund Фергюсон):
<body> <div class="main"> <h1>Main Heading</h1> <section> <h1 class="h2">Section Header</h1> </section> </div> <aside class="side"> <article class="widget"> <h1 class="h3">Sidebar Headings</h1> </article> <article class="widget"> <h1 class="h3">Sidebar Headings</h1> </article> </aside> </body>пожалуйста, прочитайте полные статьи (и темы), по ссылкам выше, для получения более подробной информации, связанной с этим вопросом/темой.
большинство таблиц стилей имеют набор размеров шрифта, которые соответствуют стилям заголовков с 1 по 6. Иногда, в другом месте на странице, веб-дизайнеры хотят использовать те же размеры шрифта на текст, который должен не быть частью фактического элемента заголовка, по семантическим причинам. Вместо того, чтобы предоставлять имена для каждого из этих размеров, таких как
.size-12,.size-14,.size-16и т. д., проще просто назвать их имена, класс, похожими на ваши заголовки. Таким образом, вы знаете, что текст будет тот же размер, что и элемент H1, хотя на самом деле это не элемент H1. Я сам делал это несколько раз.
несколько причин, которые я могу придумать:
- используя div вместо правильного тега, чтобы получить визуальный заголовок без влияния на SEO
- чтобы избежать осложнений от неувязок браузер
- совместимость с другими библиотеками и фреймворками, которые решили сделать то же самое по причинам 1 и 2
- гибкость дизайна (как отмечено @scrappedcola в комментариях)
Это позволяет для разделения визуальной иерархии сформировать семантическую иерархию. например, я хочу сказать зрителю одно, а компьютеру (поисковым системам) - другое.
<article> <h1 class="h1">Page Title</h1> <p>Some content</p> <section> <h1 class="h2">Section Heading</h1> <div class="h6">Sub Heading</div> <p>Some content</p> </section> <section> <h1 class="h2">Section Heading 2</h1> <div class="h6">Sub Heading 2</div> <p>Some content 2</p> </section> </article>посмотреть:
единственное, что я могу вспомнить навскидку для поисковых систем. Многие будут смотреть на фактический тег h1 в качестве заголовка или темы страницы и использовать его для поиска и т. д. Наличие нескольких тегов h1 может запутать пауков поисковой системы и может испортить поиск, который вернет результаты для вашего сайта (я также слышал, что это может привести вас в список "плохой сайт" с некоторыми пауками, такими как Google).
наличие стилей позволяет вам иметь тот же визуальный взгляд на элемент без завинчивания поисковая система.
еще одна причина, с которой я столкнулся недавно... это не относится к угловым, но служит хорошим примером:
Я хочу создать динамические / декларативные формы в Angular (см. динамические формы в угловой поваренной книге) и разрешить стилизованные текстовые элементы. Максимальная гибкость потребует разрешения мне декларативно добавлять произвольные элементы HTML в мои формы, но это открыто для атак сценариев и требует явного подрыва компилятора Angular, чтобы даже разрешить его. Вместо, Я разрешаю добавлять текстовые элементы в формы вместе с классом для управления стилем. Так что я могу использовать .стиль h1, но не элемент h1.
Это определенно поможет с точки зрения SEO и Google crawlers лучше понять вашу страницу. Когда он читает h1, он предполагает, что все, что находится там, должно быть фокусом страницы. H2, были бы вторыми компонентами и так далее. Таким образом, Google может понять "объем" того, что ваша страница охватывает с точки зрения контента.
не совсем уверен, но большой переменной, на мой взгляд, будет режим "чтения" страниц. Это позволит устройствам и читателям организовывать контент особенно для устройств, используемых слабовидящими людьми.
также он обеспечивает структуру страницы и чувство порядка.
Comments