0

我已经盯着这个看了一段时间,但我不明白为什么我的 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 应该在左边。

4

5 回答 5

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; 
}

例子

于 2013-10-16T09:08:03.130 回答
1

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

用不同的 id 分叉小提琴,嘿 presto:

.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/

于 2013-10-16T09:07:13.230 回答
0

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

于 2013-10-16T09:08:14.137 回答
0

如果 ids/selector 被修改为不以数字开头,则它们满足规范并生效:

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/

于 2013-10-16T09:08:25.360 回答
0

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

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

ID 和 NAME 标记必须以字母 ([A-Za-z]) 开头,后跟任意数量的字母、数字 ([0-9])、连字符 ("-")、下划线 ("_") , 冒号 (":") 和句点 (".")。

于 2013-10-16T09:07:48.230 回答