本文的部分内容整理了我对这个问题的回答:HowdowordsconnectwhennamingCSSclassesorIDs?–知乎CSS类或ID命名通常有以下几种文字连接的写法:驼峰式:solutionTitle、solutionDetail单杠(连接符)连接:solution-title、solution-detail下划线连接:solution_title、solution_detail应该使用用什么方式写呢?选择是基于个人习惯还是其他考虑?看了豆瓣、美团、淘宝的源码,都是用的solution_title。我的回答首先是个性,这是一个纯粹的“代码风格”问题。什么是“代码风格”问题?有一些特点:技术规范不是一成不变的。虽然规范有时可能会提供指导性建议,或者有时会有行业领导者出来提倡最佳实践。个性化是显而易见的。即萝卜青菜各有喜好,公说公对,女说女对,无定论。说完自己的习惯:以前使用下划线的主要原因是在编辑器中双击可以选中;另外,我觉得下划线很好看(纯属个人喜好)。除此之外可能还有一些“菜鸟警告”(避免弄乱CSS属性名称/值,避免弄乱减号),或者我的入门书可能使用了下划线。现在主要是用连字符,后来逐渐接手或者参与了别人的一些项目,接触了各种代码风格。在老外的一些项目中,接触过大量使用连字符的名字,看多了也不难看。也可以在编辑器中通过“双击拖拽”来选择,所以有一个逐渐过渡到断字的过程。驼峰式大小写在特殊场合使用不方便,引入了大小写的复杂性,在可读性上没有优势,所以在日常开发中很少使用。也正因为如此,我目前主要在一些框架级的类名中使用它,以区分日常开发的命名习惯,避免不慎污染框架级风格的可能性。关于标准,有网友提到:在HTML和CSS语法中,无论是属性名还是值,使用连接符的地方都是——没有_。遵循标准有利无害。我不同意这种说法。因为“followstandard”没有依据,逻辑不清。我们很容易理清一件事——命名元素的class和id本质上就是将值写入HTML标签的class和id属性。HTML标签属性值的合法性与HTML标签属性名和CSS属性名/值的命名习惯有关吗?说到“标准”,我其实不知道class和id的合法值是多少,下划线是否合法,甚至不知道class和id的值是否区分大小写。为此,我参考了当前规范HTML4.01和CSS2.1的部分内容。CSS2.1是这样说的:在CSS中,标识符(包括元素名称、类和选择器中的ID)只能包含字符[a-zA-Z0-9]和ISO10646字符U+00A0及更高版本,加上连字符(-)和下划线(_);……也就是说,用下划线连接多个单词作为class或者id的值是合法的。(何士君先生提醒:CS??S1和2的规范在这一点上是错误的,没有加下划线;这个问题直到CSS2.1才得到纠正。)其他关于可读性的看法何士君先生(@hax)提出forward一个容易被忽视但实际上很重要的因素:-比_稍微好一点的是_有时很难区分,就像一个空格。而课堂上是否有空位也很重要。比较一下下面三种用法:mode对选择操作的影响,比如双击可以直接选中由_连接的多个词,但并不是所有由-连接的多个词都可以选中,选择区域会以-结束,即只能选择一个词。关于SublimeText,一思同学(@yisibl)在微博做了一个科普:CSS命名带连字符——不能双击选中的问题一直是个伪命题。这是编辑器的问题。正因如此,才选择下划线_有点牵强。在SublimeText2的全局配置文件Preferences.sublime-settings中找到word_separators字段,将其中的-删掉,双击选中一系列多个单词。Vim还有一位潘维增同学提供了一个Vim的配置方法:如果使用vim,可以设置setiskeyword+=-,这样就可以匹配由-连接的选中关键字,更方便查找和标记。(不好意思,这只是纯转发,暂时无法验证。)UltraEdit我平时在Windows下使用UltraEdit工作。它有一个称为Ctrl+双击的操作。并且我们可以为这个操作设置分隔符,非常灵活。鼠标选择如果你的编辑器不支持以上配置或操作,其实有一个解决方法,可以通过-一次选中多个相连的单词:双击的最后一次不要松开,然后左右拖动即可以单词为单位扩大选择区域。(这种选择方式几乎适用于所有的编辑器,Windows和Mac都通用。)其实我不建议像前面的方法一样在编辑器中取消-的分隔符状态,而是推荐使用这种“双击+拖动”"方法来选择任意数量的单词。因为,有时候你只想选一二二三或者一二三中的一个单词,那么这个方法显然更加自由和精准——你想选的越来越少,你想选的多和更多。—BonusTrack—如果您使用的是WebStorm(或其兄弟IDE),请不要用鼠标四处点击,这并不优雅。可以将光标移动到一个词上,使用快捷键Ctrl+W(Mac下为Cmd+W)选中当前词;更神奇的是,这个快捷键可以连续使用,选择区域可以不断扩大到更大的语法单元:单词→一串单词→整个字符串(或语句)→对象(或函数作用域)→。..→整个文件。(唯一不方便的是这个快捷键在其他程序中是关闭当前窗口的操作,容易混淆,建议在IDE中给这个操作分配其他快捷键。)原文出处:cssmagic的博客(@CSS魔法)
