日期:2014-05-17  浏览次数:20704 次

IE上的问题!
<html>
<head>
<script type="text/javascript">

function CreateGrid(itemHeight, totalWidth, itemNum, bgColor, borderColor, itemText)
{
var div_grid = 0;
var div_subitem = 0;
var strSubInnerHTML = "";
var itemWidth = totalWidth/itemNum-1; //减1是因为要设置右边框
div_grid = document.createElement("div");

for(var i = 0; i < itemNum; i++)
{

  if(itemText != null)
  {
  strSubInnerHTML += "<td style='border:1px solid #0066FF'><div style='width:"+itemWidth+"px;height:"+itemHeight+";margin:auto;position:relative;background-color:"+bgColor+";border-right:solid 1px "+borderColor+";float:left;'>"+itemText[i]+"</div></td>";
   
  }
   
}
div_grid.innerHTML = strSubInnerHTML;
div_grid.style.cssText = "margin:auto;width:"+totalWidth+"px;height:"+itemHeight+"px;position:relative;border-top:solid 1px;border-bottom:solid 1px;border-right:solid 1px;float:left;text-align:center;";
my_div.appendChild(div_grid);
return div_grid;
}

</script>
</head>
<body>
  <div id="my_div" style="width: 750px; margin-top: 10px; text-align: left; overflow: hidden;">
   
  </div>

  <script type="text/javascript">
  var totalWidth = 480;
var itemHeight = 16;
var titleWidth = 80;
var itemText = new Array("1111111","2222222","3333333","4444443","5555555","6655555");
  CreateGrid(itemHeight, totalWidth, 6, "#D4E8FE", "#000000", itemText);

  </script>

</body>
</html>


这个脚本在火狐上显示一切ok,但是在IE上显示最后一个div总是没有跟它后面的div对其,右边有一点空白不知道怎么解决?

------解决方案--------------------
这是盒子模型的问题,lz可以看看我的帖子:【分享】重新认识IE盒模型bug

在你的代码里,几个div模仿单元格,宽度在Firefox里计算的没问题,每个DIV都占 80px的宽度。79px(width)+1px(border-right)=80px;


但是在IE里,宽度包含了border,所以,最后,每个div占的宽度都是79px,6个div比Firefox里就少占了6px的宽度,所以有空白了。

让页面运行在标准模式下就可以了。
给它加一个DOCTYPE:<!DOCTYPE html>