CSS忽略div的id,但不忽略class

时间:2013-10-16 09:03:44

标签: html css3

我一直在盯着这个,但我无法弄清楚为什么我的css文件忽略了我的div的id标签。我以前做过几乎完全相同的事情,但现在突然间它不起作用。知道为什么吗?

http://jsfiddle.net/phacer/dmf6V/

.canvas {
    background: #c5c5c5; 
    border: 1px #676767 solid;
    width: 600px;
    height: 338px;
    position: absolute;
}

#2dcanvas {
    left: 0;
}

#3dcanvas {
    right: 0;
    background: black; 
}

.canvas_container {
    width: 1210px;
    position: relative;
    margin: 0 auto;
    height: 340px;
}



<div class="canvas_container">
    <div class="canvas" id="2dcanvas">/div>
    <div class="canvas" id="3dcanvas"></div>
</div>

3dcanvas应该在右边,而2dcanvas应该在左边。

5 个答案:

答案 0 :(得分:3)

由于ID不能以数字/数字开头,因此您可以将其设置为字母数字:

<div class="canvas_container">
    <div class="canvas" id="canvas2d"></div>
    <div class="canvas" id="canvas3d"></div>
</div>

<强> CSS

div#canvas2d {
    left: 0;
}

div#canvas3d {
    right: 0;
    background: black; 
}

Example

答案 1 :(得分:1)

HTML中的ID和类不允许以数字开头,所以这就是原因。

用不同的ids把小提琴分开,嘿嘿:

.canvas {
    background: #c5c5c5; 
    border: 1px #676767 solid;
    width: 600px;
    height: 338px;
    position: absolute;
}

#twodcanvas {
    left: 0;
}

#threedcanvas {
    right: 0;
    background: black; 
}

.canvas_container {
    width: 1210px;
    position: relative;
    margin: 0 auto;
    height: 340px;
}

<div class="canvas_container">
    <div class="canvas" id="twodcanvas"></div>
    <div class="canvas" id="threedcanvas"></div>
</div>

http://jsfiddle.net/Ydy5F/1/

答案 2 :(得分:0)

我认为这与ID以字母开头的事实有关。

将ID更改为以字母开头,它可以正常工作。

  

ID和NAME令牌必须以字母([A-Za-z])开头,可能是   后跟任意数量的字母,数字([0-9]),连字符(“ - ”),   下划线(“_”),冒号(“:”)和句点(“。”)。

答案 3 :(得分:0)

允许类标识符以数字开头,但ID标识符不是。

答案 4 :(得分:0)

如果ids /选择器被修改为不以数字开头,则它们符合规范并生效:

<强> CSS

#d2canvas {
    left: 0;
}

#d3canvas {
    right: 0;
    background: black; 
}

<强> HTML

<div class="canvas_container">
    <div class="canvas" id="d2canvas">/div>
    <div class="canvas" id="d3canvas"></div>
</div>

JS小提琴: http://jsfiddle.net/dmf6V/2/