считается ли использование имен классов типа «право» плохой практикой?

StackOverflow https://stackoverflow.com/questions/242255

  •  04-07-2019
  •  | 
  •  

Вопрос

Если у меня есть имена классов, такие как «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 " это более подходящее имя класса.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top