Não há um.
Uso sublinhados o tempo todo, devido a hífens atrapalhando o destaque da sintaxe do meu editor de texto (Gedit), mas essa é a preferência pessoal.
Eu já vi todas essas convenções usadas em todo o lugar. Use o que você achar melhor - o que parecer melhor / mais fácil de ler para você e mais fácil de digitar, porque você o usará muito. Por exemplo, se você tiver sua tecla de sublinhado na parte inferior do teclado (improvável, mas inteiramente possível), atenha-se a hífens. Basta ir com o que é melhor para si mesmo. Além disso, todas essas três convenções são facilmente legíveis. Se você estiver trabalhando em uma equipe, lembre-se de manter a convenção especificada pela equipe (se houver).
Atualização 2012
Eu mudei como eu programo ao longo do tempo. Agora eu uso camel case ( thisIsASelector
) em vez de hífens agora; Acho o último bastante feio. Use o que você preferir, o que pode mudar facilmente com o tempo.
Atualização 2013
Parece que eu gosto de misturar as coisas anualmente ... Depois de mudar para o Sublime Text e usar o Bootstrap por um tempo, voltei aos traços. Para mim agora eles parecem muito mais limpos que un_der_scores ou camelCase. Meu argumento original ainda permanece: não há um padrão.
Atualização 2015
Um caso interessante de canto com convenções aqui é Rust . Eu realmente gosto da linguagem, mas o compilador avisará se você definir coisas usando algo diferente underscore_case
. Você pode desativar o aviso, mas é interessante que o compilador sugira fortemente uma convenção por padrão. Eu imagino que em projetos maiores isso leva a um código mais limpo, o que não é ruim.
Atualização 2016 ( você pediu)
Adotei o padrão BEM para meus projetos daqui para frente. Os nomes das classes acabam sendo bastante detalhados, mas acho que fornece boa estrutura e reutilização para as classes e CSS que os acompanham. Suponho que o BEM seja realmente um padrão (então o meu no
se torna um yes
talvez), mas ainda depende de você o que você decide usar em um projeto. Mais importante: seja consistente com o que você escolher.
Atualização 2019 ( você pediu)
Depois de escrever um CSS por um bom tempo, comecei a trabalhar em um local que usa o OOCSS em um de seus produtos. Pessoalmente, acho bastante desagradável classificar as classes em todos os lugares, mas não basta alternar entre HTML e CSS o tempo todo é bastante produtivo.
Ainda estou decidido pelo BEM. É detalhado, mas o espaço para nome torna o trabalho com ele nos componentes React muito natural. Também é ótimo para selecionar elementos específicos ao testar o navegador.
OOCSS e BEM são apenas alguns dos padrões de CSS existentes. Escolha um que funcione para você - todos eles estão cheios de compromissos porque o CSS não é tão bom .
Atualização 2020
Uma atualização chata este ano. Eu ainda estou usando o BEM. Minha posição não mudou muito a partir da atualização de 2019 pelos motivos listados acima. Use o que funciona melhor para você, que se adapta ao tamanho da sua equipe e oculta tanto ou tão pouco o conjunto de recursos ruins do CSS que você desejar.