相关疑难解决方法(0)

HTML中id属性的有效值是什么?

id为HTML元素创建属性时,该值的规则是什么?

html

1945
推荐指数
22
解决办法
43万
查看次数

为什么破折号首选CSS选择器/ HTML属性?

在过去,我总是使用下划线来定义HTML中的classid属性.在过去的几年里,我改用破折号,主要是为了让自己与社区趋势保持一致,不一定是因为它对我有意义.

我一直认为破折号有更多的缺点,我没有看到它的好处:

代码完成和编辑

大多数编辑器将破折号视为单词分隔符,因此我无法通过选项卡切换到我想要的符号.说类是" featured-product",我必须自动完成" featured",输入连字符,然后完成" product".

下划线" featured_product"被视为一个单词,因此可以一步填充.

这同样适用于浏览文档.通过单词跳转或双击类名会被连字符打破.

(更一般地说,我认为类和ID是标记,所以对我来说,标记应该在连字符上很容易拆分是没有意义的.)

算术运算符的模糊性

使用破折号会破坏对JavaScript中表单元素的对象属性访问.这只能用下划线表示:

form.first_name.value='Stormageddon';
Run Code Online (Sandbox Code Playgroud)

(不可否认,我自己并不以这种方式访问​​表单元素,但是当决定破折号和下划线作为通用规则时,请考虑某人可能.)

Sass这样的语言(特别是在整个Compass框架中)已经将破折号作为标准,即使对于变量名称也是如此.他们最初也开始使用下划线.这被解析的事实让我感到奇怪:

$list-item-10
$list-item - 10
Run Code Online (Sandbox Code Playgroud)

与跨语言的变量命名不一致

在当天,我曾经用underscored_namesPHP,ruby,HTML/CSS和JavaScript 编写变量.这是方便和一致的,但再次为了"适应"我现在使用:

  • dash-case 在HTML/CSS中
  • camelCase 在JavaScript中
  • underscore_case 在PHP和ruby中

这对我来说并没有太多困扰,但我想知道为什么这些看起来如此错位,似乎是故意的.至少使用下划线可以保持一致性:

var featured_product = $('#featured_product'); // instead of
var featuredProduct = $('#featured-product');
Run Code Online (Sandbox Code Playgroud)

差异造成了我们不得不不必要地翻译字符串以及可能存在错误的情况.

所以我问:为什么社区几乎普遍以破折号为主,是否有任何理由超过下划线?

从这个开始的时间开始有一个相关的问题,但我认为它不是(或不应该)只是一个品味的问题.我想了解为什么我们都认为这个大会只是一个品味问题.

html css coding-style naming-conventions

207
推荐指数
6
解决办法
6万
查看次数

标签 统计

html ×2

coding-style ×1

css ×1

naming-conventions ×1