Javascript 动态创建的Div';s、 外部分区的子项,镀铬位置错误,但IE位置正确
我有一些javascript动态创建包含JSON数据的DIV元素。我将这些div附加到父“outerDiv”中 我希望外层是一个水平放置在中心的容器,并与窗户顶部对接 我想要的内部div然后以特定的方式排列在容器中 我以为我已经实现了我想要的,因为它在IE中正确显示,但当我在Chrome中打开它时,所有的div都在outerDIV容器中彼此重叠 这是我的密码Javascript 动态创建的Div';s、 外部分区的子项,镀铬位置错误,但IE位置正确,javascript,html,json,cross-browser,position,Javascript,Html,Json,Cross Browser,Position,我有一些javascript动态创建包含JSON数据的DIV元素。我将这些div附加到父“outerDiv”中 我希望外层是一个水平放置在中心的容器,并与窗户顶部对接 我想要的内部div然后以特定的方式排列在容器中 我以为我已经实现了我想要的,因为它在IE中正确显示,但当我在Chrome中打开它时,所有的div都在outerDIV容器中彼此重叠 这是我的密码 <script> var data = { "users":[ { "Club" : "Ashford",
<script>
var data = { "users":[
{ "Club" : "Ashford",
"Defeated" : false,
"Score" : 520000,
"Team Name" : "Assassins",
"Id" : 1
},
{ "Club" : "Eltham Hill",
"Defeated" : true,
"Score" : 480000,
"Team Name" : "Crusaders",
"Id" : 2
},
{ "Club" : "Sittingbourne",
"Defeated" : false,
"Score" : 610000,
"Team Name" : "Strikers",
"Id" : 3
},
{ "Club" : "Watford",
"Defeated" : true,
"Score" : 180000,
"Team Name" : "Wanderers",
"Id" : 4
}
]}
var outerDiv = document.createElement("div");
outerDiv.id = "map";
document.body.appendChild(outerDiv);
//document.body.style.position='relative';
//document.body.style.left=200;
for (var z in data.users) {
if (z % 2 == 0){
var divTag = document.createElement("div");
divTag.id = data.users[z].Id;
divTag.innerHTML = "<H2>" + data.users[z].Club + "</h2>" + "</br> <h3>" + data.users[z].Score +"</h3>";
document.getElementById('map').appendChild(divTag);
document.getElementById(data.users[z].Id).style.position='absolute';
document.getElementById(data.users[z].Id).style.left=10;
document.getElementById(data.users[z].Id).style.top=(data.users[z].Id - 1) * 100;
document.getElementById(data.users[z].Id).style.color='rgb(0,100,255)';
}
else {
var divTag = document.createElement("div");
divTag.id = data.users[z].Id;
divTag.innerHTML = "<H2>" + data.users[z].Club + "</h2>" + "</br> <h3>" + data.users[z].Score +"</h3>";
document.getElementById('map').appendChild(divTag);
document.getElementById(data.users[z].Id).style.position='absolute';
document.getElementById(data.users[z].Id).style.left=600;
document.getElementById(data.users[z].Id).style.top=(data.users[z].Id - 1) * 100;
document.getElementById(data.users[z].Id).style.color='rgb(200,10,20)';
}
}
</script>
变量数据={“用户”:[
{“俱乐部”:“阿什福德”,
"败":假,,
“分数”:520000,
“团队名称”:“刺客”,
“Id”:1
},
{“俱乐部”:“埃尔坦山”,
“失败”:没错,
“分数”:48万,
“团队名称”:“十字军”,
“Id”:2
},
{“俱乐部”:“Sittingbourne”,
"败":假,,
“分数”:610000,
“球队名称”:“前锋”,
“Id”:3
},
{“俱乐部”:“沃特福德”,
“失败”:没错,
“分数”:180000,
“团队名称”:“流浪者”,
“Id”:4
}
]}
var outerDiv=document.createElement(“div”);
outerDiv.id=“映射”;
文件.正文.附件(outerDiv);
//document.body.style.position='relative';
//document.body.style.left=200;
for(data.users中的var z){
如果(z%2==0){
var divTag=document.createElement(“div”);
divTag.id=data.users[z].id;
divTag.innerHTML=“”+data.users[z].Club++“”+data.users[z].Score+”;
document.getElementById('map').appendChild(divTag);
document.getElementById(data.users[z].Id).style.position='absolute';
document.getElementById(data.users[z].Id).style.left=10;
document.getElementById(data.users[z].Id).style.top=(data.users[z].Id-1)*100;
document.getElementById(data.users[z].Id).style.color='rgb(0100255)';
}
否则{
var divTag=document.createElement(“div”);
divTag.id=data.users[z].id;
divTag.innerHTML=“”+data.users[z].Club++“”+data.users[z].Score+”;
document.getElementById('map').appendChild(divTag);
document.getElementById(data.users[z].Id).style.position='absolute';
document.getElementById(data.users[z].Id).style.left=600;
document.getElementById(data.users[z].Id).style.top=(data.users[z].Id-1)*100;
document.getElementById(data.users[z].Id).style.color='rgb(200,10,20)';
}
}
我现在脑子里有这个CSS
<style>
div h3 {color: green;}
div#map{
width: 600px;
height: 2000px;
position: absolute;
top: 0%;
left: 20%;
}
</style>
div h3{颜色:绿色;}
分区图{
宽度:600px;
高度:2000px;
位置:绝对位置;
最高:0%;
左:20%;
}
为什么它在IE中看起来正确,但在Chrome中却不正确?
我希望它在所有浏览器、桌面和移动设备中都能正确显示
感谢您的帮助:)完成了……就像我想的那样简单 因此,IE似乎将“px”添加到了
document.getElementById(data.users[z].Id).style.left=10;
并且正确地解释了它
Chrome没有添加“px”,所以我只是将代码改为
document.getElementById(data.users[z].Id).style.left=10 + "px";
无论如何都应该这样做,这才是最佳实践。快速查看:没有像这样的html标记,它可能会丢弃“好”浏览器。谢谢……但这并不是问题的根源:(