Javascript和CSS,使用破折号

我开始学习一些JavaScript,并明白在命名标识符时不允许出现破折号。 但是,在CSS中,通常使用短划线作为ID和类。

在CSS中使用短划线会干扰JavaScript交互吗? 例如,如果我要使用getElementByID(“css-dash-name”)。 我已经尝试了几个使用带破折号的getElementByID作为div ID名称的例子,它的工作原理,但我不确定是否在所有其他情况下都是这种情况。


如果在ID中使用破折号和下划线(或者如果您选择了类名称),则不会产生任何负面影响,所以使用它们是安全的。 你不能做这样的事情:

var some-element = document.getElementByID('css-dash-name');

上面的示例将会出错,因为您要将元素分配给的变量中有一个短划线。

以下将很好,但因为该变量不包含破折号:

var someElement = document.getElementByID('css-dash-name');

该命名限制仅存在于JavaScript变量本身。


只有在可以将元素作为属性进行访问的情况下,它才会有所作为。 例如表单字段:

<form>
   <input type="text" name="go-figure" />
   <input type="button" value="Eat me!" onclick="...">
</form>

在onclick事件中,您无法将文本框作为属性访问,因为在JavaScript中短划线被解释为减号:

onclick="this.form.go-figure.value='Ouch!';"

但是你仍然可以使用字符串来访问它:

onclick="this.form['go-figure'].value='Ouch!';"

无论何时您必须将CSS属性作为JavaScript变量名称,CamelCase才是正式的方法。

element.style.backgroundColor = "#FFFFFF";

你永远不会需要将元素的ID作为变量名称来处理。 它总是在一个字符串中,所以

document.getElementById("my-id");

将始终工作。

链接地址: http://www.djcxy.com/p/88307.html

上一篇: Javascript and CSS, using dashes

下一篇: How can I make my flexbox layout take 100% vertical space?