它是否取决于您使用的平台,还是大多数开发人员建议/遵循的通用约定?
有几种选择:
id="someIdentifier"'
id="some-identifier"
id="some_identifier"
我在想上面的#1和#3最有意义,因为它们在Javascript中的表现更好。
有正确的答案吗?
没有一个。
由于连字符使我的文本编辑器(Gedit)的语法突出显示混乱,因此我一直使用下划线,但这是个人喜好。
我已经在所有地方看到了所有这些约定。使用您认为最好的那一种- 对您来说看起来最好/最容易阅读以及最容易键入的那一种,因为您会经常使用它。例如,如果您的下划线键位于键盘的底部(不太可能,但完全可能),则请使用连字符。只要选择最适合自己的东西即可。此外,所有这三种约定都易于阅读。如果您在团队中工作,请记住遵守团队指定的约定(如果有)。
更新2012
随着时间的流逝,我改变了编程方式。我现在使用驼峰大小写(thisIsASelector)代替连字符;我发现后者相当丑陋。使用 您 喜欢的任何东西,随着时间的流逝,它们很容易改变。
thisIsASelector
更新2013
好像我想每年混合一些东西……切换到Sublime Text并使用Bootstrap一段时间后,我又回到了破折号。在我看来,它们看起来比un_der_scores或camelCase干净得多。 我的原始观点仍然存在 :没有 标准。
更新2015
带有约定的有趣案例是Rust。我真的很喜欢这种语言,但是如果您使用以外的任何东西来定义东西,编译器会警告您underscore_case。您可以关闭警告,但有趣的是,编译器强烈建议默认情况下使用约定。我想象在较大的项目中,它会导致代码更干净,这不是一件坏事。
underscore_case
2016年更新 (您要求的)
我为以后的项目采用了BEM标准。类名最终变得非常冗长,但是我认为它为与之配套的类和CSS提供了良好的结构和可重用性。我认为BEM 实际上是 一个标准(所以我可能no成为了标准yes),但是您决定在项目中使用什么仍然取决于您。最重要的是:与您选择的内容保持一致。
no
yes
更新2019 (您要求的)
在一段时间没有编写CSS之后,我开始在一个在其产品中使用OOCSS的地方工作。我个人觉得到处乱扔类是非常不愉快的,但是不必一直在HTML和CSS之间切换会产生很大的效果。
不过,我仍然选择BEM。它很冗长,但是命名空间使得在React组件中使用它非常自然。在浏览器测试时选择特定元素也非常有用。
OOCSS和BEM只是其中的一些CSS标准。选择一个适合您的方法-因为CSS 并不是那么好, 它们都妥协了。