использование названий классов как 'правильное' считается плохой практикой? - PullRequest
3 голосов
/ 28 октября 2008

Если у меня есть имена классов, такие как «left», «right», «clear» и xhtml вроде

<a href="index.php" class="right continueLink">Continue</a>

С CSS, как

.right {
float: right;
}

Я знаю, что это не семантическое имя, но иногда оно делает намного проще.

В любом случае, что ты думаешь?

Ответы [ 7 ]

16 голосов
/ 28 октября 2008

Я не думаю, что это очень хорошая идея. Теперь, когда вы (или будущий сопровождающий) перейдете к изменению макета веб-сайта, вам придется либо изменить .right на {float:left;} (очевидно, плохая идея), либо просмотреть все ваши HTML-файлы и изменить right на left.

Почему вы хотите, чтобы эта конкретная ссылка отображалась правильно, а другая .continueLink - нет? Используйте ответ на этот вопрос, чтобы выбрать более описательное имя класса для этой ссылки.

6 голосов
/ 28 октября 2008

css означает представление структуры вашей HTML-страницы.

То есть его классы должны представлять структуру документа («статья», «дополнительные ссылки», «глоссарий», «введение», «заключение», ...).

Вы должны избегать любого класса, связанного с физическим представлением ('left', 'right', 'footnotes', 'sidenotes', ...), потому что, как Zen Garden так ясно иллюстрирует, вы можете решить разместить любой div очень разными и разными способами.

2 голосов
/ 28 октября 2008

Пуристы скажут, не делайте этого, а прагматики скажут, что все в порядке. Но будут ли пуристы определять .right как float: left?

1 голос
/ 28 октября 2008

Будучи пуристом, я говорю: не делай этого. По причинам, упомянутым ранее.

Будучи прагматиком, я просто хотел сказать, что никогда не видел переделок веб-сайта, включающих чистые изменения HTML без CSS или чистого CSS без HTML, просто потому, что обе части разрабатываются с учетом другой. Так что, на самом деле, если кому-то когда-либо понадобится изменить страницу, я держу пари, что моя зарплата будет меняться как в HTML, так и в CSS.

Вышесказанное - это то, что окружающие пуристы часто склонны игнорировать, даже если это реальность. Но суть; нет, избегайте использования className, такого как "right". : -)

1 голос
/ 28 октября 2008

Рекомендуется избегать имен, которые совпадают со значениями в спецификациях CSS, чтобы избежать путаницы. Особенно в ситуациях, когда над одним приложением работают несколько разработчиков.

Кроме этого я не вижу проблем. Я бы назвал правильное или левое имя следующим образом: menuleft, menuright и т. Д.

0 голосов
/ 28 октября 2008

Да, с семантической точки зрения это неправильно, но, например, бывают случаи, когда я размещаю изображения внутри блока основной копии, и я даю им класс "право".

Может быть, "alt" - более подходящее имя класса.

0 голосов
/ 28 октября 2008

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

С уважением Джеспер Хауге

...