Полагаю, что хотя вы рассматриваете семантику, вы все равно слишком много думаете о представлении.
Вам следует разделить процесс проектирования на две фазы.Во-первых, вы думаете ТОЛЬКО о семантике - вы можете попытаться НЕ смотреть страницы в браузере.Посмотрите на необработанный HTML-код и подумайте, хорошо ли выглядит код .
В HTML5 у вас есть теги <section>
и <article>
.Используйте их, чтобы сгруппировать содержимое в разделы, и в каждом разделе поместите тег <h1>
.Это будет семантически хорошо.
В случае, если вы используете HTML4, вы можете использовать <div class="...">
для маркировки разделов и использовать <h1>
.. <h6>
в качестве заголовков, но все равно не думатьо размере шрифта!
После того, как вы это сделаете, вы можете начать думать о презентации .Присвойте класс каждому разделу и определите заголовки в соответствии с разделом, в котором находится заголовок. Пример:
<article>
<h1><img src="logo" alt=""/>Page title</h1>
<section class="shop">
<h1>Shop 1</h1>
<section class="items">
<h1>Open Close</h1>
<!-- something -->
</section>
<section class="items">
<h1>Services</h1>
<!-- something -->
</section>
<!-- more sections... -->
</section>
<section class="shop important">
<h1>Shop 2</h1>
<!-- and so on... -->
И тогда вы можете свободно стилизовать заголовки, используя полная мощность CSS-селекторов , где это уместно.
article > h1 { // Page header
font-size: 200%;
}
section.shop > h1 { // Shop title
font-size: 150%;
}
section.shop + section.shop > h1 { // All but the first..
color: gray;
}
section.items > h1 { // item title
font-size: 110%;
}
section.shop.important > section.items:first-child > h1 {
color: red;
}
Вероятно, класс "items" следует называть по-разному, но я не уверен, какова цель разделов раздела "shop".Он был приведен только в качестве примера, потому что вы можете вообще не указывать класс, и вы все равно можете стилизовать его, используя соответствующие селекторы:
section.shop > section > h1 {
// format of the "items" section
}