现在的位置: 首页 > 综合 > 正文

IE8Beta2在处理HTML元素水平居中碰到的一个有趣的现象

2013年10月02日 ⁄ 综合 ⁄ 共 1399字 ⁄ 字号 评论关闭

我的前面那篇博客“怪事,ASP.Net Development Server让我白忙了一下午 ”描述的问题产生的原因其实是写错的。今天在次碰到上面提到的问题时,才查出这个问题的根本原因。下面是一段简单的代码重新这个有趣的bug。

我的IE8版本信息如下:

有下面一段简单的Html代码

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
html xmlns="http://www.w3.org/1999/xhtml" >
head>
    title>title>
head>
body style="text-align:center">
table style="background-color:Blue;">
tr>td>123213td>tr>
table>
body>
html>

就是居中显示一个简单的Table。使用IE访问这个Html,就会看到居中显示。

但是你用IE8通过 http://local.csdn.net:49193/1.htm   这样的方式来访问,则不会居中。

而通过  http://localhost:49193/1.htm  这样的地址来访问则会居中。

 

下面的截图使用了IE8的新特性,用缩略图在一个页面演示了这两种不同地址的访问效果,你可以看到一个居中,一个居左,如下图:

 

确保 Host 文件有下面两行,就可以实现上述2个地址访问同一个内容:

127.0.0.1       localhost

127.0.0.1    local.csdn.net

用 FF 访问上述地址(不论是 http://local.csdn.net:49193/1.htm    还是  http://localhost:49193/1.htm  )都居左显示。

用IE的之前版本(IE 5.5 ,IE6 , IE 7)访问,(不论是 http://local.csdn.net:49193/1.htm    还是  http://localhost:49193/1.htm  ) 则都居中显示。

结论:

显然IE8 在处理 http://localhost:49193/1.htm 时, 用了兼容以前IE的处理机制。 在处理 http://local.csdn.net:49193/1.htm 时,则是采用了跟 Mozilla系列浏览器一致的处理机制。

当然要让这段Html不论任何浏览器都居中显示,可以用 margin:0 auto; 来定制居中。

修改后的Html 代码如下:

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
html xmlns="http://www.w3.org/1999/xhtml" >
head>
    title>title>
head>
body style="text-align:center">
table style="background-color:Blue;margin:0 auto;">
tr>td>123213td>tr>
table>
body>
html>

这时候, 不论IE的那个版本,还是 Mozilla系列浏览器都水平居中显示了。

抱歉!评论已关闭.