считается ли использование имен классов типа «право» плохой практикой?
Вопрос
Если у меня есть имена классов, такие как «left», «right», «clear» и xhtml, например
<a href="index.php" class="right continueLink">Continue</a>
С помощью CSS, например
.right {
float: right;
}
Я знаю, что это не семантическое имя, но иногда оно значительно упрощает задачу.
В любом случае, что вы думаете?
Решение
Я не думаю, что это очень хорошая идея. Теперь, когда вы (или будущий сопровождающий) перейдете к изменению макета своего веб-сайта, вам придется либо изменить .right
на {float: left;}
(очевидно, это плохо или просмотрите все свои HTML-файлы и измените вправо
на left
.
Почему вы хотите, чтобы эта конкретная ссылка отображалась правильно, а другая .continueLink
- нет? Используйте ответ на этот вопрос, чтобы выбрать более описательное имя класса для этой ссылки.
Другие советы
css - это представление структуры вашей HTML-страницы.
То есть его классы должны представлять структуру документа («статья», «дополнительные ссылки», «глоссарий», «введение», «заключение», ...). Р>
Вы должны избегать любого класса, связанного с физическим представлением ('left', 'right', 'footnotes', 'sidenotes', ...), потому что, как Zen Garden , что наглядно демонстрирует, что вы можете разместить любой div очень разными и разными способами.
Пуристы скажут: не делайте этого, а прагматики скажут, что все в порядке. Но будут ли пуристы определять .right
как float: left
?
Во избежание путаницы рекомендуется избегать имен, совпадающих со значениями в спецификациях CSS. Особенно в ситуациях, когда над одним приложением работают несколько разработчиков.
Кроме этого я не вижу проблем. Я бы назвал правильное или левое имя следующим образом: menuleft, menuright и т. Д.
Будучи пуристом, я говорю: не делай этого. По причинам, упомянутым ранее.
Будучи прагматиком, я просто хотел сказать, что никогда не видел переделок веб-сайта, которые включали бы чистые изменения HTML без CSS или чистого CSS без HTML, просто потому, что обе части разрабатывались с учетом другой. Так что, на самом деле, если кому-то когда-либо понадобится изменить страницу, я держу пари, что моя зарплата будет меняться как в HTML, так и в CSS.
Вышесказанное - это то, что окружающие пуристы часто склонны игнорировать, хотя это реальность. Но суть; Нет, избегайте использования className, такого как "right". : -)
.right и другие подобные классы, безусловно, позволяют быстро создать тег с помощью float:right
к нему прилагается правило, но я думаю, что у этого метода больше недостатков, чем преимуществ:
Часто классовый стиль с одним float:right;
в нем чего-то не хватает, ваш пример будет плавать правильно, только если другое правило класса содержит display:block
в нем, поскольку тег «a» не является элементом уровня блока.Кроме того, плавающие элементы чаще всего должны иметь ширину и высоту.Это означает, что коду в вашем примере требуется дополнительный код, чтобы делать то, что он говорит, и вам придется искать в двух местах, когда вам нужно изменить CSS.
Я склонен стилизовать свой HTML, разделяя страницу на разные теги div с уникальными идентификаторами, а затем стилизуя элементы в этих div путем наследования, как показано ниже.
div#sidebar { float:right; width:200px; }
div#sidebar ul { list-style-type:none; }
Это позволяет разделить мои CSS-файлы на разделы, чтобы было легко найти CSS-код, стилизующий определенный тег, но если вы введете .right и другие классы, вы начнете распределять правила по разным областям CSS-файла. , что затрудняет обслуживание сайта.
Я думаю, что идея создания очень общих классов родилась из желания дать возможность изменить всю структуру сайта, изменив пару правил в таблице стилей, но я должен сказать, что за 8 лет разработки веб-сайтов с 30+, за плечами разные сайты. Я ни разу не менял макет сайта и не использовал повторно HTML.
То, что я делал бесчисленное количество раз, — это внесение небольших изменений в области страниц либо из-за небольших изменений в дизайне, либо из-за внедрения новых браузеров.Поэтому я за то, чтобы мой CSS был разделен на аккуратные куски, чтобы было легче находить нужные правила, и не размещал код в разных местах, чтобы получить более короткую таблицу стилей.
Привет Йеспер Хауге
Да, с семантической точки зрения это неправильно, но, например, бывают случаи, когда я помещаю изображения в блок основной копии, и я даю им класс " право ".
Возможно " alt " это более подходящее имя класса.