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

我的前面那篇博客“怪事,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>123213
    
    td>
     
     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>123213
    
    td>
     
     tr>

      
      table>
 
       body>  
        html>

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

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值