IE7下元素的 'padding-top' 遇到 'clear' 特性在某些情况下复制到 'padding-bottom'

简介:

项目中使用的是DIV+CSS布局,有一个页面是同事完成的,这几天他请假有事。项目发现一个UI Bug。在IE7下,某一个Div的padding-top会让整个div产生padding-bottom样式。在IE8/9、Firefox、Chrome下都是OK。

 

通过搜索发现是发现问题的答案:

链接地址是:http://w3help.org/zh-cn/causes/RM1010

在项目开发过程中,开发人员为了让div的高度随着内容自动增加,所以经常在div的关闭之前会添加一个类似clearfix的div。这个div的结构如下:

<div class=”clearfix”>&nbsp;</div> 样式是: .clearfix{clear: both;}。通过上面链接的解释是未触发hasLayout 特性。平时对这个特性接触的不多,所以不是很明白。

 

但是之前的项目我们也未采用链接所说的解决方案,但是项目的兼容性是很不错的。后来通过查看之前项目的代码,我们在给最外层的div添加一个高度时,padding-bottom样式不会出现。但是我们此时内容无法自动扩充。

 

所以在需要自动扩展内容的div中嵌入一个<div class=”clearfix”></div>,此时最外层不能添加height,达到内容自动扩充。代码如下:

   1:  <html xmlns="http://www.w3.org/1999/xhtml">

   2:  <head>

   3:      <title>元素"padding-top"会出现"padding-bottom" in IE7中</title>

   4:      <style type="text/css">

   5:          body

   6:          {

   7:              padding:0;

   8:              margin:0;

   9:          }

  10:          .clearfix

  11:          {

  12:              clear:both;

  13:              height:0;

  14:          }

  15:          #container

  16:          {

  17:                 

  18:              background:#CCC; 

  19:              

  20:              border:2px solid black; 

  21:              padding-top:10px;

  22:              

  23:          }

  24:          .leftpanel

  25:          {

  26:             float:left; width:50px; height:100px; background:#666;

  27:          }

  28:          .rightpanel

  29:          {

  30:              float:left; width:500px;  background:green;

  31:          }

  32:      </style>

  33:  </head>

  34:  <body>

  35:  <div id="container">

  36:    <div class="leftpanel">Left Panel Content Here!</div>

  37:    

  38:    <div class="rightpanel">Right Panel Content Here!Right Panel Content Here!

  39:    Right Panel Content Here!Right Panel Content Here!

  40:    Right Panel Content Here!Right Panel Content Here!<div class="clearfix"></div></div>

  41:    <div style="clear:both;"></div>

  42:  </div>

  43:  </body>

  44:  </html>

目录
相关文章
IE6下面,为什么不能设置height:1px的元素
在用DIV构建网页的时候,有时候需要的高度很小,这时候就可能会出现问题,因为,IE6下DIV有个默认的高度,大约10-12px。当你试图定义一个高度小于这个默认值的 div 的时候, IE 会固执的认为这个层的高度不应该小于字体的行高。
287 0
|
Web App开发 JavaScript
设置dom元素可拖动,支持ie5+
设置dom元素可拖动,支持ie5+
|
前端开发 JavaScript
纯css选取指定元素(兼容IE6/7/8)
如何使用纯css选取指定元素且能兼容IE6/7/8?
2080 0
|
前端开发
CSS-自定义高度的元素背景图如何自适应以及after伪类在ie下的处理
我都好久没更新了! 遇到一个效果,之前没有考虑清楚,设置了固定高度,到了后边,产品要加长,我就觉得设计得从新弄张长点的背景图!这不多余么? 其实分析原图还是可以再切分,再细化到不用改设计图,让我们前端页面各种适应,做到重复利用。
1471 0
|
Web App开发 JavaScript
设置dom元素可拖动,支持ie5+
摘要:   最近在项目中要做一个图片预览的功能,这时候会遇到用户上传很大的图片,已经超出视图界面。最终决定做一个在固定宽和高的位置,用户可以拖动图片查看。所以自己就写了一个支持ie5+,chrome,Firefox,opera等浏览器的可拖动dom元素的插件。
1096 0
|
Web App开发 JavaScript 前端开发
javascript:FF/Chrome 与 IE 动态加载元素的区别
今天在写一段js时,发现IE与FF在动态加载Html元素时,有一些差别,看下面的代码: ff 与 ie 动态加载元素的区别 li{margin:0;padding:0;list-style:none} function add(){ var liTemplate = $("#template"); liTemplate.
1027 0
|
前端开发
【技术帖】IE6所有标签元素支持hover伪类的解决方案
IE6是个顽皮的大爷。为了实现一些简单的效果,我们通常要做许多事情。比如li:hover ,td :hover这些东西,IE6向来不看。   解决办法网上有许多,亲试了许多,只有以下才能解决,就是加一个tc文件就可以了!! 步骤: 1.
1138 0