IE6,IE7上设置body{overflow:hidden;}失效Bug

IE6,IE7下设置body{overflow:hidden;}失效Bug

  最近做项目发现在IE7下设置body{overflow:hidden;}后还是会出现纵向滚动条,所以上网查查了,在这里记录一下:

  设置body{overflow:hidden;}:IE6 IE7下不生效。IE6下横向纵向滚动条都在,IE7下纵向滚动条还在;

  分析原因:
chrome、firefox会初始付值给html{overflow:visible;}

  IE6 初始付值html{overflow-x:auto;overflow-y:scroll;}

  IE7 初始付值html{overflow-x:visible;overflow-y:scroll;}

  只有dom根结点(也就是html根节点)设置html{overflow:visible;}的时候,浏览器才会将body元素中的overflow值应用到视图区。

  举个例子说:

  设置了body{overflow:hidden},还会出现滚动条,不过这个滚动条不是body的,是html的,只有你设置html{overflow:visible;} body{overflow的值}才能传递到html{}中去。这样html的值就变成了{overflow:hidden},ok没有滚动条了。这样就很明了啦,并不是bug,而是浏览器初始值不同产生的问题。

  所以上面的问题就是通过设置html的overflow的值来解决IE6和IE7下的存在的这个问题;

已经验证过,此方法可以!!!!!!

时间: 2024-07-30 09:40:27

IE6,IE7上设置body{overflow:hidden;}失效Bug的相关文章

IE下设置body{overflow:hidden;}失效Bug

问题重现: <p>There are no scrollbars on this page in sane browsers</p> html, body, p { margin: 0; padding: 0; } body { overflow: hidden; } p { width: 5000px; height: 5000px; }IE6 IE7下不生效(IE6下横向纵向滚动条都在 IE7下纵向滚动条还在) 原因: 明智的浏览器(ex. chrome and firefox

css ie6、ie7、ie8中overflow:hidden无效解决办法

产生原因: 当父元素的直接子元素或者下级子元素的样式拥有position:relative属性时,父元素的overflow:hidden属性就会失效. 解决办法: 我们在IE 6内发现子元素会超出父元素设定的高度,即使父元素设置了overflow:hidden.解决这个bug很简单,在父元素中使用position:relative;即可解决该bug ie7和ie6 发现在ie6和ie7里面overflow:hidden无效,还是会超出外层div 后来在外层div上面加上position:rela

在ie7中overflow:hidden失效问题及解决方案

css兼容ie7: 做页面的时候用负边距居中的时候在IE7下面,父节点中的overflow:hiden失效的问题,查阅了一些资料,总结一下解决方法. 问题原因: 当父元素的直接子元素或者下级子元素的样式拥有position:relative属性时,父元素的overflow:hidden属性就会失效. 解决方法: 我们在IE7内发现子元素会超出父元素设定的高度,即使父元素设置了overflow:hidden. 解决这个bug很简单,在父元素中使用position:relative;即可解决该bug

css ie7中overflow:hidden失效问题及解决方法

css兼容ie7: 做页面的时候用负边距居中的时候在IE7下面,父节点中的overflow:hiden失效的问题,查阅了一些资料,总结一下解决方法. 问题原因: 当父元素的直接子元素或者下级子元素的样式拥有position:relative属性时,父元素的overflow:hidden属性就会失效. 解决方法: 我们在IE7内发现子元素会超出父元素设定的高度,即使父元素设置了overflow:hidden. 解决这个bug很简单,在父元素中使用position:relative;即可解决该bug

overflow:hidden失效的原因

项目中常常有同学遇到这样的问题,现象是给元素设置了overflow:hidden,但超出容器的部分并没有被隐藏,难道是设置的hidden失效了吗? 其实看似不合理的现象背后都会有其合理的解释. 我们知道,overflow属性值有这几种: visible:声明内容不会被剪裁.比如内容可能被渲染到容器外面. hidden:声明内容将被剪裁,并且也甭想使用滚动条来查看剪裁掉的内容. scroll:声明内容将被剪裁,但有可能出现滚动条来查看被剪裁掉的内容.滚动条出现的位置在inner border ad

overflow:hidden失效

overflow:hidden失效 为了页面的健壮性,我们常常需要使用overflow:hidden.有时候是为了防止布局被撑开,有时候是为了配合其它规则实现文字截断,还有时候纯粹是为了创建块级上下文.但是,很多人对这个属性是存在着一定的误解的. 网上很多入门的资料或文章都只提到用overflow:hidden加固定的宽度(或高度)可以强制隐藏内部的超出容器的内容.包括之前我们在使用overflow:hidden创建块级上下文的方式来实现图文混排时,都认为overflow:hidden造成了特殊

IE6、IE7、IE8中overflow:hidden无效问题

在做图片无缝滚动效果时遇到了这个兼容问题 div宽1000px高250px超出隐藏. 但在Firefox中正常,超出部分隐藏,但是在IE6.IE7.IE8.Sogou高速下都显示了出来.做了这么多年的前端了,第一次发现在这样的问题.实在头疼.一开始单独拿出这段代码发现没有问题,认为是上下影响导致的,但不是,几经波折,发现是设定overflow:hidden层里有定位标签的问题.最后终于搞定. 解决方案: 只需要在设定overflow:hidden层加入定位即可.如在 .album .thumb

IE6/IE7中li底部4px空隙的Bug

当li的子元素中有浮动(float)时,IE6/IE7中<li>元素的下面会产生4px空隙的bug. 代码如下: <ul class="list"> <li><div>vapour</div></li> <li><div>百度</div></li> <li><div>淘宝</div></li> <li><

解决IE6,IE7不能隐藏(overflow:hidden)绝对定位溢出的内容

IE6/IE7下父元素有相对/绝对定位时,子元素在IE6和IE7下overflow:hidden;失效,下面与大家分享下导致以上问题发生的情况及解决方法 令人蛋疼的IE,IE6/IE7下父元素有相对/绝对定位时,子元素在IE6和IE7下overflow:hidden;失效. 情况一:(在parent上增加position:relative) 代码如下: <style type="text/css"> .parent{ width:100px; height:100px;bo