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

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

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

С CSS вроде

.right {
float: right;
}

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

Во всяком случае, что ты думаешь?

Согласно Bootstrap, pull-right в порядке.

alex 03.07.2015 10:09
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
4
1
941
7
Перейти к ответу Данный вопрос помечен как решенный

Ответы 7

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

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

Ответ принят как подходящий

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

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

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

alex 28.10.2008 07:58

Почти во всех случаях я полностью с вами согласен. Однако есть один случай, который я просто не могу решить, кроме как с помощью «левого» и «правого»: размещения плавающих изображений в статье. Точный выбор более или менее произвольный; на самом деле больше не от чего различать изображения.

Bobby Jack 29.10.2008 22:36

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

Nathan Long 06.11.2008 18:59

css касается представления состав вашей html-страницы.

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

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

вы правы, но «сноски» - плохой пример, поскольку они действительно описывают структурный элемент документа (независимо от того, где он размещен). это ничем не отличается от "ЗАГОЛОВКИ"

nickf 28.10.2008 11:18

Я знал, что вы собираетесь это сказать ;-) НО определение сносок явно относится к «нижней части страницы», «физическому» местоположению. Я бы предпочел более общий термин, например, «комментарии», «связанные заметки» или просто «примечания». См. dictionary.reference.com/browse/footnote

VonC 28.10.2008 12:48

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

Конечно, но я прагматик и, наверное, поменяю классы на .left.

eyelidlessness 28.10.2008 20:00

И тогда вам придется изменить весь свой html, а также ваш css. Это то, что пытаются донести «пуристы».

Traingamer 28.10.2008 23:19

На самом деле мне нужно было бы изменить только определенные части моего HTML и, вполне вероятно, только один экземпляр, если бы я изначально правильно спроектировал представление.

eyelidlessness 29.10.2008 00:18

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

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

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

Я не гонюсь за вашей зарплатой, но я просто должен прокомментировать, что мы только что закончили переработку веб-сайта, которая не включала никаких изменений html. Были изменены только css и текстовое содержимое (текст загружается из пакета ресурсов)

Gene 28.10.2008 10:49

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

Martin Kool 28.10.2008 12:06

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

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

ваш пример будет плавать вправо только в том случае, если другое правило класса содержит в нем блок display:, поскольку тег «a» не является элементом уровня блока Я думал, что float заставляет элемент быть блочным?
alex 03.07.2015 10:09

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

Возможно, «alt» - более подходящее имя класса.

Другие вопросы по теме