Mar 5

  在IE6下运行上面的代码,会出现大家经常会碰到的padding加倍的现象(鼠标移上去能更清楚地看到a元素底部有padding值)
  
  经过一些测试,我个人看法是这个现象是由IE6下浮动元素有3px的bug引起。
  大家都知道:IE6下,当子元素的宽度大于父元素的宽度时,父元素会被撑破,而IE7以及FF等不会
  
  在测试例子中,我给父元素加了padding-top:10px的属性,当子元素a浮动之后,多出了3px,
  而这3px宽度没有向右撑破,却是被挤得换行了,在视觉上,第二行就有了10px的高度(来自padding-top的值),形成一个padding加倍的假象
  
  结论: padding加倍假象的根本原因是IE6的3px引起的,与a:hover无关
  解决: 1. 在a标签后加"<br />"标签即可
             2. 给a标签和a:hover 设置同样的背景色
  
  -----------------------------------------我是分割线--------------------------------------------
  
  另外在下面的代码中,给子元素a加上background-color属性,运行,发现第二行的padding-top消失了
  而当a:hover的background-color值发生变化时第二行的padding-top又回来了
  这样就会给人一种假象:即以为是a:hover引起“padding加倍”
  (a:hover的其他属性改变时也paddint-top也会回来,如改变font-size)
  
  为什么给a加上background-color,第二行的padding-top就消失了呢?

   

  <!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>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <meta name="author" content="colinivy" />
  <title> Colinivy's world</title>
  <style type="text/css">
   * {
    margin:0; padding:0; list-style:none;
   } 
   body {
    font:normal 12px/30px 宋体;
   }
   #test {
    border: 1px solid #ddd;
    padding-top:0px;
    width:200px;
    overflow:hidden;
   }
   #test a { 
    float:left;
    width:200px;
    /*background-color:#eee; */
   }
   #test a:hover {
    background-color:#ddd;      
   }
  </style>
  </head>
  <body>
   <div id="test">
    <a href="#" target="_blank">柯零艾薇</a>
   </div>
  </body>
  </html>

分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]