Многие веб-сайты используют имена классов, такие как floatleft
, clearfloat
, alignright
, small
, center
и т.д., которые описывают стиль, прикрепленный к классу. Это, похоже, имеет смысл, поэтому при написании нового контента вы можете легко обернуть (например) <div class="clearfloat">...</div>
вокруг вашего элемента, чтобы заставить его вести себя так, как вы хотите.
Мой вопрос заключается в том, не противоречит ли этот стиль классам именования отделить контент от презентации? Помещение элемента class="floatleft"
на элемент явно помещает презентационную информацию в документ HTML.
Следует ли избегать таких имен классов, которые непосредственно описывают прикрепленный стиль, и если да, то какая альтернатива существует?
Чтобы уточнить, речь идет не только о том, как назвать классы. Например, семантически точный документ может выглядеть примерно так:
<div class="foo">Some info about foo</div>
...
<div class="bar">Info about unrelated topic bar</div>
...
<div class="foobar">Another unrelated topic</div>
Скажем, всем этим divs нужно очистить float, css будет выглядеть примерно так:
div.foo, div.bar, div.foobar {
clear:both;
}
Это начинает становиться уродливым по мере увеличения количества этих элементов клиринга, тогда как один class="clearfloat"
будет служить той же цели. Рекомендуется ли группировать элементы на основе прикрепленных стилей, чтобы избежать повторения в CSS, даже если это означает, что информационная информация проникает в HTML?
Обновить. Спасибо за все ответы. Общий консенсус, похоже, заключается в том, чтобы избегать этих имен классов в пользу семантических имен или, по крайней мере, использовать их экономно, если они не мешают техническому обслуживанию. Я думаю, что важно то, что изменения в макете не должны требовать чрезмерных изменений в разметке (хотя некоторые люди отметили незначительные изменения, если они упрощают общее обслуживание). Спасибо тем, кто предложил другие методы, чтобы уменьшить CSS-код.