Javascript 子元素位置相对工作错误
我有一个css宽度和高度的div元素,800x600。我正在使用javascript在div中生成三个对象元素,它们应该在一条对角线上,相互接触。我使用position:relative和左上css属性来定位对象元素。然而,当我这样做的时候,正方形之间有一个不应该存在的水平间隙。当我使用position:fixed时,它们按照我想要的方式排列,但不在div元素内部 my div元素的HtmlJavascript 子元素位置相对工作错误,javascript,html,css,position,Javascript,Html,Css,Position,我有一个css宽度和高度的div元素,800x600。我正在使用javascript在div中生成三个对象元素,它们应该在一条对角线上,相互接触。我使用position:relative和左上css属性来定位对象元素。然而,当我这样做的时候,正方形之间有一个不应该存在的水平间隙。当我使用position:fixed时,它们按照我想要的方式排列,但不在div元素内部 my div元素的Html <div id="Stage" style="background:black;width:800
<div id="Stage" style="background:black;width:800px;height:600px;margin-left:auto;margin-right:auto;overflow:hidden;">
还有我的javascript
w="w";
level_data =
[
[w,0,0],
[0,w,0],
[0,0,w],
];
function generate(level_data){
for(row=0;row<level_data.length;row++){
for(col=0;col<level_data[row].length;col++){
posx = col*50; posy=row*50;
if(level_data[row][col]=="w"){
entity = document.createElement('object');
entity.style.position = "relative";
entity.style.left = String(posx)+"px"; entity.style.top = String(posy)+"px";
entity.data = "Objects/Sprites/Wall.jpg";
document.getElementById("Stage").appendChild(entity);
}
}
}
}
generate(level_data);
w=“w”;
二级数据=
[
[w,0,0],
[0,w,0],
[0,0,w],
];
函数生成(级别_数据){
for(row=0;row位置:fixed
相对于视口定位元素。位置:relative
给出该结果,因为对象
元素可能对宽度
和高度
有一些默认值。您将需要类似以下内容:
entity.style.position = "absolute";
entity.style.left = String(posx)+"px";
entity.style.top = String(posy)+"px";
entity.style.width = "50px";
entity.style.height = "50px";
当使用position:absolute
时,即使没有实体的维度,代码也应该工作。注意,当使用position:relative
时,不应该将位置值与col
相乘,它们应该是50px记住用var声明所有变量e> 否则您将泄漏到全局空间。行
列
列
实体
posx
posy
它们似乎都在泄漏。请尝试将实体.style.left
值设置为0。否则,它在DOM中相对于它前面的实体是left
。啊,谢谢你。这就是我所做的不管怎样,我可以让它相对于父div,而不需要对象元素相互推动,而只需将left设置为0,因为这只是一个测试,实际情况中会有间隙,让元素不相互推动会更容易,而不是在我之前跟踪行中有多少元素我不想计算出它的位置。是的,我尝试过设置宽度和高度,还使用了img。我使用object而不是img,因为我正在制作一个html游戏,我不希望精灵可以右键单击。还使用位置绝对位置相对于页面而不是div。我发现问题在于元素被推入在父代内部互相攻击div@GregHornby我明白了……不管怎样,我的答案是使用位置:绝对
而不是相对
。你试过了吗?是的,我试过了,它给出了与位置相同的结果:fixedOh wait。我将div元素设置为position:fixed,所以现在带有position:absolute的实体如何工作谢谢