Там нет ни одного.
Я использую подчеркивания все время, потому что дефисы портят подсветку синтаксиса моего текстового редактора (Gedit), но это личное предпочтение.
Я видел все эти условные обозначения, используемые повсеместно. Используйте тот, который вы считаете лучшим - тот, который выглядит лучше / удобнее для чтения, а также легче всего печатать, потому что вы будете часто его использовать. Например, если у вас есть клавиша подчеркивания на нижней стороне клавиатуры (маловероятно, но вполне возможно), то придерживайтесь дефисов. Просто иди с тем, что лучше для себя. Кроме того, все 3 из этих соглашений легко читаются. Если вы работаете в команде, не забывайте придерживаться соглашения, определенного для команды (если оно есть).
Обновление 2012
Я изменил, как я программирую со временем. Теперь я использую camel case ( thisIsASelector
) вместо дефисов; Я нахожу последнее довольно некрасивым. Используйте то, что вы предпочитаете, что со временем может легко измениться.
Обновление 2013
Похоже, мне нравится смешивать вещи каждый год ... После переключения на Sublime Text и использования Bootstrap некоторое время я вернулся к тире. Для меня теперь они выглядят намного чище, чем un_der_scores или camelCase. Моя первоначальная точка все еще стоит , хотя: там не стандартный.
Обновление 2015
Интересный случай с условностями здесь - Rust . Мне действительно нравится язык, но компилятор предупредит вас, если вы определите вещи, используя что-то кроме underscore_case
. Вы можете отключить предупреждение, но интересно, что компилятор настоятельно рекомендует соглашение по умолчанию. Я предполагаю, что в больших проектах это приводит к более чистому коду, который не является плохой вещью.
Обновление 2016 ( вы просили об этом)
Я принял стандарт BEM для своих проектов в будущем. Имена классов оказываются довольно многословными, но я думаю, что это дает хорошую структуру и возможность многократного использования для классов и CSS, которые идут вместе с ними. Я полагаю, что БЭМ на самом деле является стандартом (так что мой no
становится, yes
возможно,), но это все еще зависит от вас, что вы решите использовать в проекте. Самое главное: быть в соответствии с тем, что вы выбираете.
Обновление 2019 ( вы просили об этом)
После того, как я довольно долго не писал CSS, я начал работать в месте, которое использует OOCSS в одном из своих продуктов. Лично я нахожу довольно неприятным засорять классы повсюду, но без необходимости постоянно переключаться между HTML и CSS кажется довольно продуктивным.
Я все еще остановился на БЭМ, хотя. Это многословно, но пространство имен делает работу с ним в компонентах React очень естественной. Он также отлично подходит для выбора определенных элементов при тестировании браузера.
OOCSS и BEM - это только некоторые из стандартов CSS. Выберите тот, который работает для вас - все они полны компромиссов, потому что CSS просто не так хорош .
Обновление 2020
Скучное обновление в этом году. Я все еще использую БЭМ. Моя позиция не изменилась с обновления 2019 года по причинам, перечисленным выше. Используйте то, что работает для вас, которое масштабируется с размером вашей команды и скрывает столько или мало плохого набора функций CSS, как вам нравится.