Я использую lowerCamel для имен классов и UpperCamel для идентификаторов. Это очень важно, и я бью этот старый ответ, потому что IMO не следует использовать стиль переносов, даже подчеркивание лучше, чем переносы.
Почему? Потому что любой другой язык не может иметь имен переменных через дефис. Например, ваша IDE может или не может правильно подобрать автозаполнение. (Моя IDE не может, это VI: P)
CSS, тесно связанный с JavaScript, дефис-имя класса также затрудняет взаимодействие с JavaScript. Рассмотрим следующий (надуманный) jQuery:
// For each of the following class, perform a function
var funcs =
{
main: function(){ /* ... */},
toolbar: function(){ /* ... */ },
// Oops, need to use a quote because there's this hyphenated name
'customer-info': function(){ /* ... */ }
};
// Woot, a O(n^2) function
for(var className in funcs)
{
var func = funcs[className];
// maybe if we named it $('#some-selector')? The hyphen suddenly feels
// like some kind of operator to me. Makes me nervous :/
$('#SomeSelector div').each(function()
{
if($(this).hasClass(className)) func();
});
}
Нет явного преимущества использования стиля через дефис, кроме субъективной эстетики. Недостатки в том, что он отличается от любого другого языка программирования (ОК, CSS может не быть языком программирования, да ладно ...) и что он технически некорректен .
Правильный (да?) Способ представления пространства подчеркивается. Считайте эту фразу «письмо с собственным адресом», как я могу преобразовать пробелы?
- a_self-address_letter (правильно, сохраняет первоначальное значение)
- a-self-address-letter (ой! Если мы конвертируем его обратно, мы получим «письмо с собственным адресом»!)
Также рекомендуется ли всегда использовать все строчные буквы для имен css, потому что они не чувствительны к регистру?
Полагаю, в этом случае рекомендуется всегда использовать PascalCasing, поскольку он способствует удобочитаемости.