子元素位置相对工作错误
Child element position relative working wrong
我有一个 css 宽度和高度的div 元素,800x600。我正在使用javascript在div中生成三个对象元素,它们应该在对角线上,相互接触。我正在使用 position:relative,以及左侧和顶部的 css 属性来定位对象元素。但是,当我这样做时,正方形之间有一个不应该存在的水平间隙。当我使用 positon:fixed 时,它们会按照我想要的方式排列,但不会在div 元素内排列。
我的div 元素的 HTML
<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);
这就是我得到的:链接1
这就是我想要的:Link2 但大黑方块内的红色方块。怎么了?
position: fixed
相对于视口定位元素。 position: relative
给出该结果object
因为该元素可能具有 widht
和 height
的默认值。你需要这样的东西:
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
时,即使没有entity
的维度,代码也应该可以工作。注意,当使用position: relative
时,你不应该将位置值乘以col
,它们应该只是50px
。
相关文章:
- dhtmlx多个调度器不工作错误”;调度程序未定义”;
- Javascript 确认框工作错误
- 变量中的类工作错误
- 为什么这个jQuery验证工作错误
- Cordova罗盘API(navigator.compass.watchHeading)不工作(错误代码3)
- Javascript不能在Chrome或IE9中工作-错误”;复选框未定义“;显示在FF JS控制台中
- JQuery UI对话框不能正常工作;错误信息“TypeError: undefined不是一个函数”
- Jquery/JS css动画在悬停时工作错误
- AngularJs Ng-Keypress事件工作错误
- Jquery 选择器不工作:错误:语法错误,无法识别的表达式:a[@href]
- 日期选择器范围工作错误
- 为什么我的Jquery Ajax请求不工作错误:未定义的索引:ProID
- 反应不工作.错误提示(index):13 Uncaught SyntaxError: Unexpected token
- 身份工具箱不工作-错误代码:IDP的错误响应
- jquery日期picker beforeShowDay工作错误的月份
- Javascript验证在c#中不工作(错误消息)
- 为什么?每个函数都工作错误
- 路由到api工作错误
- 子元素位置相对工作错误
- 从timeline2.6.1的例子不工作-错误链接是未定义的时间线代码0