CSS定位与JavaScript生成的div不符合我的预期
首先,我必须道歉。CSS定位一直是我存在的祸根,而这可能是我完全不知道的简单事情 无论如何,我有一个生成div的JS脚本。每个div都位于绝对定位的父容器内。CSS如下:CSS定位与JavaScript生成的div不符合我的预期,css,javascript,Css,Javascript,首先,我必须道歉。CSS定位一直是我存在的祸根,而这可能是我完全不知道的简单事情 无论如何,我有一个生成div的JS脚本。每个div都位于绝对定位的父容器内。CSS如下: #container{ position: absolute; } #container div{ position: relative; } 创建div的函数是: function newLine(){ var id_num = ++line; var _new; var i; for(i = 0;
#container{
position: absolute;
}
#container div{
position: relative;
}
创建div的函数是:
function newLine(){
var id_num = ++line;
var _new;
var i;
for(i = 0; i < width; i++){
_new = document.createElement('div');
_new.innerHTML = randomChar();
_new.id = id_num;
_new.style.left = i*10+'px';
_new.style.top = 0;
document.getElementById('container').appendChild(_new);
}
}
函数换行符(){
变量id_num=++行;
var_new;
var i;
对于(i=0;i
以上所有内容都已正确初始化。左侧的定位效果很好。唯一的问题是垂直定位。不是所有的行都显示在彼此旁边,而是从div的顶部逐渐增加。我确信这是一件小事,我正在仔细查看,但我被难住了。。。非常感谢您的帮助 行作为
位置:相对的
-这将静态地对它们进行布局,然后将它们移动到指定的像素数。您希望使用绝对定位。相对定位的
充当元素,并将有效地消耗宽度:100%
,除非您显示:内联块
或浮动
它们(不过,根据您对其内容的了解,最好将它们绝对定位)@danlefree我将此标记为重新打开并将其迁移到stackoverflow它不应关闭,但migrated@Anagio我认为潜在的问题——“div和position样式声明如何工作?”——对于StackOverflow来说过于笼统(尽管我试图在结束评论中回答)@danlefree在堆栈上有很多这样的个人问题,有些人在自己的代码上有问题。我认为应该迁移它,你应该让堆栈上的版主决定是否关闭它。