它是否取决于您使用的平台,还是大多数开发人员建议/遵循的通用约定?
有几种选择:
id="someIdentifier"'
-看起来与javascript代码非常一致。id="some-identifier"
-看起来更像html5类属性和html中的其他内容。id="some_identifier"
-看起来与ruby代码非常一致,并且仍然是Javascript中的有效标识符
我在想上面的#1和#3最有意义,因为它们在Javascript中的表现更好。
有正确的答案吗?
它是否取决于您使用的平台,还是大多数开发人员建议/遵循的通用约定?
有几种选择:
id="someIdentifier"'
-看起来与javascript代码非常一致。 id="some-identifier"
-看起来更像html5类属性和html中的其他内容。id="some_identifier"
-看起来与ruby代码非常一致,并且仍然是Javascript中的有效标识符我在想上面的#1和#3最有意义,因为它们在Javascript中的表现更好。
有正确的答案吗?
我刚开始学习XML。下划线版本帮助我将与XML相关的所有内容(DOM,XSD等)与Java,JavaScript(驼峰式案例)之类的编程语言区分开。我同意您的看法,使用编程语言允许的标识符看起来更好。
编辑:可能不相关,但是这里是有关命名XML元素的规则和建议的链接,我在命名ID时要遵循这些规则(“ XML命名规则”和“最佳命名做法”部分)。
对于HTML和CSS,没有约定的命名约定。但是您可以围绕对象设计构建术语。更具体地说,我称之为所有权和关系。
所有权
描述对象的关键字可以用连字符分隔。
新右转车
描述对象的关键字也可以分为四类(应从左到右排序):对象,对象描述符,动作和动作描述符。
汽车-一个名词,一个
新对象-一个形容词,以及一个更详细地描述对象的对象描述符
-动词和属于该对象
的动作-形容词和一个动作描述符动作更详细
注意:动词(动作)应处于过去时态(转动,完成,奔跑等)。
关系
对象还可以具有父级和子级之类的关系。Action和Action-Descriptor属于父对象,但不属于子对象。对于对象之间的关系,可以使用下划线。
汽车新向右转左车轮向左转
- 右转新车(遵循所有权规则)
- 向左转左(遵循所有权规则)
- car-new-turned-right_wheel-left-turned-left(遵循关系规则)
最后说明:
许多人更喜欢CSS ID和类名中的连字符的另一个原因是功能。
使用option+ left/ right(在Windows上为ctrl+ left/ right,或Windows)上的键盘快捷方式逐字遍历代码,将光标停在每个破折号处,使您可以使用键盘快捷方式精确遍历id或类名。下划线和camelCase不会被检测到,并且光标将在其上漂移,就好像它们都是一个单词一样。
没有一个真正的答案。您可以选择其中的一种,也可以根据需要使用的对象来创建自己的标准,具体取决于与谁一起工作。而且它100%取决于平台。
仅需考虑另一种替代标准:
<div id="id_name" class="class-name"></div>
在您的脚本中:
var variableName = $("#id_name .class-name");
这仅对变量,id和类分别使用camelCase,under_score和连字符。我已经在几个不同的网站上阅读了有关此标准的信息。尽管在css / jquery选择器中有点多余,但是冗余使捕获错误更容易。例如:如果您看到.unknown_name
或#unknownName
在CSS文件中,则知道需要弄清楚实际指的是什么。
(连字符称为“ kebab-case”,下划线称为“ snake_case”,然后您具有“ TitleCase”,“ pascalCase”)
我个人不喜欢连字符。我最初将其发布为一种选择(因为规则很简单)。但是,连字符使选择快捷键非常困难(在vsCode中双击,ctrl/ option+ left/ right和ctrl/ cmd+ D。此外,类名和文件名是连字符起作用的唯一位置,因为它们几乎总是在引号或CSS中,等等。但是捷径的事情仍然适用。
除了变量,类名和ID,您还希望查看文件名约定。和Git分支。
我办公室的编码小组实际上在一两个月前开会,讨论我们如何命名事物。对于git分支,我们无法在321-the_issue_description或321_the-issue-description之间进行选择。(我想要321_theIssueDescription,但我的同事不喜欢这样。)
一个示例,以演示如何使用其他人的标准...
Vue.js确实有一个标准。实际上,他们对其中的几个项目有两个替代标准。我不喜欢两个版本的文件名。他们推荐"/path/kebab-case.vue"
或"/path/TitleCase.Vue"
。前者很难重命名,除非您专门尝试重命名其中的一部分。后者不利于跨平台兼容性。我希望"/path/snake_case.vue"
。但是,在与其他人或现有项目一起工作时,务必遵循已经制定的任何标准。因此,即使我完全抱怨它,我还是使用kebab-case作为Vue中的文件名。因为不遵循,则意味着更改了vue-cli设置的许多文件。
谷歌有css&html样式指南,建议始终使用连字符:https : //google.github.io/styleguide/htmlcssguide.html#ID_and_Class_Name_Delimiters。
我认为这取决于平台。在.Net MVC中进行开发时,我使用引导程序样式的小写字母和连字符作为类名,但是对于ID,我使用PascalCase。
这样做的原因是我的视图得到了强类型视图模型的支持。C#模型的属性是Pascal情况。为了使用MVC进行模型绑定,有意义的是,绑定到模型的HTML元素的名称与pascal情况下的视图模型属性一致。为简单起见,我的ID与元素名称使用相同的命名约定,除了单选按钮和复选框外,它们对于命名输入组中的每个元素都需要唯一的ID。