overflow:hidden这个CSS样式是大家常用到的CSS样式,但是大多数人对这个样式的理解仅仅局限于隐藏溢出,而对于清除浮动这个含义不是很了解。
一提到清除浮动,我们就会想到另外一个CSS样式:clear:both,我相信对于这个属性的理解大家都不成问题的。但是对于“浮动”这个词到底包含什么样的含义呢?我们下面来详细的阐述一下。
这是一个常用的div写法,下面我们来书写样式。大家可以自己做试验
.wai{ width:500px; background:#555; height:500px;}
.li { float:left; width:600px; height:400px; background-color:#efefef; margin-top:15px; margin-left:15px;}
可以看到,我给li这个class加了一个浮动,我们常规的理解是,我们允许li这个class的div的右边出现其他的内容,只要它的宽度不超过wai这个div和nei这个div的剩余值。
如果div wai中还包含其他的div,我不允许它出现在li的右侧,我们则用样式clear:both指定这个div,不允许它浮动在li右侧。
这些在ie6里面是正确的,但是在火狐或者其他浏览器里面,我们发现问题并非如此简单。我们发现,当li这个div的宽度和高度都大于wai这个div的时候,wai并没有被内撑开而是依旧显示为我们指定的宽高。
这个时候我不理解了,我搜索了很多的资料,但是都没能理解这是为什么,直到看到别人在类似的情况下给wai这个div加了一个overflow:hidden这个属性解决了这个问题。
我们直到overflow:hidden这个属性的作用是隐藏溢出,给wai加上这个属性后,我们的li的宽高自动的被隐藏掉了。另外,我们再做一个试验,将wai这个div的高度值删除后,我们发现,wai的高度自动的被li这个div的高度值给撑开了。
说到这里,我们再来理解一下“浮动”这个词的含义。我们原先的理解是,在一个平面上的浮动,但是通过这个试验,我们发现,这不仅仅是一个平面上的浮动,而是一个立体的浮动!
也就是说,当li这个div加上浮动这个属性的时候,在显示器的侧面,它已经脱离了wai这个div,也就是说,此时的li的宽高是多少,对于已经脱离了的wai来说,都是不起作用的。打个形象的比喻就是当你吃的雪糕脱离你的嘴的时候,雪糕的大小对于你的嘴是没有撑开的作用的(就好比XXOO的原理 -_-)
OK,当我们全面的理解了浮动这个词的含义的时候,我们就理解overflow:hidden这个属性中的解释,清除浮动是什么意思了。也就是说,当我们给wai这个div加上overflow:hidden这个属性的时候,其中li等等带浮动属性的div的在这个立体的浮动已经被清除了,就好比雪糕又进入了你的嘴内,雪糕的大小自然又会影响到你张嘴的大小。
这就是overflow:hidden这个属性清除浮动的准确含义。
当我们没有给wai这个div设置高度的时候,li这个div的高度,就会撑开wai这个div,而在另一个方面,我们要注意到的是,当我们给wai这个div加上一个高度值,那么无论li这个div的高度是多少,wai这个高度都是我们设定的值。而当li的高度超过wai的高度的时候,超出的部分就会被隐藏。这就是隐藏溢出的含义!
我相信,通过我的这些文字,大家对overflow:hidden这个属性有了全新的认识。
<style type="text/css">
.wai{width:500px; background:#555; height:500px; }
.li{float:left; width:600px; height:400px; background-color:#efefef; margin-top:15px; margin-left:15px;}
</style>
<div class="wai">
<div class="li">
</div>
</div>
相关推荐
### 全面阐述 `overflow: hidden` 属性 在网页设计与开发中,CSS(层叠样式表)作为控制HTML元素布局与样式的强大工具,其提供的诸多属性中,`overflow` 属性对于控制元素内内容的显示方式具有重要作用。其中,`...
在CSS布局中,`position:relative`和`overflow:hidden`是两个非常重要的属性,它们分别用于控制元素的位置和其内容的溢出行为。本文将详细探讨这两个属性的工作原理以及它们之间的相互影响。 首先,我们来看`...
当设置 `overflow` 为 `hidden` 时,元素的内容会被修剪,且不会出现滚动条,这通常用于隐藏溢出的内容或者防止用户看到不应该看到的部分。然而,在某些特定情况下,尤其是在旧版本的Internet Explorer(如IE8)中,...
因为绝对定位的子元素会从内向外寻找有定位的父元素,找不到的话overflow:hidden;也会随之失效。 一探究竟 重要的事再说一遍,正如上述所言,overflow:hidden;失效的原因是:父元素想要隐藏溢出的绝对定位的子元素,...
overflow:hidden失效 当父元素的直接子元素或者下级子元素的样式拥有position:relative属性时,父元素的overflow:hidden属性就会失效。 我们在IE 6内发现子元素会超出父元素设定的高度,即使父元素设置了overflow:...
【溢出隐藏(overflow:hidden)失效的原因】 在Web开发中,`overflow:hidden`是一个常见的CSS属性,用于控制元素内部内容的溢出行为。当元素的内容超出其设定的宽度或高度时,`overflow:hidden`通常会隐藏超出的...
实际上用了overflow:hidden 会影响 list-style,即当ul 中的li 的overflow 为hidden的时候, list-style不起作用,不显示前面的点、圈等样式。 解决办法:在ul或li内加入样式:list-style-position: inside; 即可。...
本文将详细介绍如何通过设置`overflow: hidden;`来隐藏元素的一部分,特别是如何隐藏元素的上半部分,并通过具体的HTML示例进行讲解。 ### 一、`overflow`属性的基本概念 `overflow`属性用于定义当内容溢出一个...
在CSS布局中,`overflow:hidden` 是一个非常重要的属性,它可以解决多种布局问题,包括隐藏溢出的内容、清除浮动以及防止margin坍塌。本文将详细解释这三个方面。 1. **隐藏溢出** 当元素的内容超出了其指定的...
使用浮动的确能够解决一些布局问题,但是也带了一些副作用影响,比如,父元素高度塌陷,我们有好几种可以清除浮动的方法,最常用的就是设置父元素的overflow:hidden这个属性,每次在写代码的时候总是这样写,但是,...
"overflow:hidden"则是这个属性的其中一个值,它能够隐藏超出元素设定范围的内容,并且不提供滚动条,从而使得溢出的内容不会显示在元素框的外部。 1. 暴力清除浮动 在CSS中,浮动(float)是一种重要的布局方式,...
css - flex + overflow:hidden
在这个主题中,我们将详细介绍如何使用CSS属性`overflow: hidden`来禁用页面滚动条。这个属性是一种简单而又快速的方法来实现滚动条的禁用,而且它也能够兼容较老的浏览器,如IE6和IE7。 `overflow`属性是CSS中的一...
然而,直接在td元素上应用overflow:hidden并不如在div元素上那样有效,因为td元素默认的行为是让文本换行显示。要想实现类似div的隐藏效果,需要对td的white-space属性进行特定设置。 首先,我们需要了解CSS的white...
在IE6浏览器中,开发者经常会遇到一个著名的CSS布局问题,那就是`overflow:hidden`失效的问题。这个问题主要发生在父元素的直接子元素或者下级子元素设置`position:relative`时,导致父元素的`overflow:hidden`属性...
4. **Overflow Hidden法**:设置`overflow:hidden`。 5. **Float法**:设置`float:left`。 #### 十、IE6双倍边距的问题 **问题**:在IE6中,设置了浮动和外边距的元素会出现双倍边距的现象。 **解决方法**:通过...
在本问题中,我们主要关注`position:relative`和`overflow:hidden`之间的交互,以及在不同浏览器(尤其是IE6和IE7)中的表现差异。 `position`属性用于定义元素的定位模式,它有多种值,如`static`(默认值)、`...