为什么css中的z-index无法通过javascript访问

时间:2013-09-06 14:37:19

标签: javascript css

我创建了一个Id标签按钮。当我点击它时,我希望它显示一个带有z-index的div。但是为什么z-index不能通过javascript访问:

var tag = document.getElementById('tag');
tag.onclick = function(){

   var tag_div = document.createElement("div");
   tag_div.id = "wow";
    document.body.appendChild(tag_div);
    tag_div.style.border = "1px solid black";
   tag_div.style.position = "absolute";
   tag_div.style.top = "200px";
   tag_div.style.left = "70px";
   tag_div.style.z-index = 1;
      return false;
}

6 个答案:

答案 0 :(得分:11)

样式表中的CSS规则使用连字符,CSS 属性使用驼峰大小写,因此您需要.zIndex

答案 1 :(得分:4)

作为一般经验法则,包含连字符(用于javascript访问)的CSS样式将转换为camelCase。也就是说,z-index变为zIndex,就像background-color变为backgroundColor一样。

请参阅JavaScript and CSS

  

在JavaScript中,backgroundColor对应于CSS属性background-color。 JavaScript不允许使用名称中的连字符,因此使用“camelCase”。

答案 2 :(得分:2)

试试这个:

tag_div.style.zIndex = 1;

答案 3 :(得分:2)

您的代码:

tag_div.style.z-index = 1;

由于连字符,这是无效的Javascript代码 - Javascript将连字符视为减号,并将其解释为减法,这将失败。

如果需要访问名称中包含连字符的对象属性,则必须使用以下语法:

obj['property-name']

这是所有JS属性的一般规则。

然而,特别是对于CSS属性,它们通常使用驼峰式名称而不是带连字符的名称暴露给Javascript(camel-case意味着没有连字符,但是用于连字符的新单词的大写字母),所以以下应该工作:

tag_div.style.zIndex = 1;

希望有所帮助。

答案 4 :(得分:1)

所有具有破折号的CSS规则(background-image,z-index,margin-top)都可以使用camelCase属性值通过JavaScript访问,如:

div.style.backgroundImage
div.style.zIndex
div.style.marginTop

答案 5 :(得分:0)

是:

tag_div.style.zIndex = 1;