网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

CSS中overflow:hidden如何实现溢出,坍塌,清除浮动-创新互联

这篇文章主要为大家展示了“CSS中overflow:hidden如何实现溢出,坍塌,清除浮动”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“CSS中overflow:hidden如何实现溢出,坍塌,清除浮动”这篇文章吧。

创新互联于2013年成立,是专业互联网技术服务公司,拥有项目网站设计、成都做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元江安做网站,已为上家服务,为江安各地企业和个人服务,联系电话:028-86922220

overflow:hidden是overflow属性的一个神奇用法,它可以帮助我们隐藏溢出的元素,清除浮动和解除坍塌。当某一个属性拥有这么多的功能时,难免使人难以把握,不过不要怕,只要信:看完这篇文章,我相信你绝对能对overflow:hidden的用法熟练掌握。

下面的代码将作为基本演示代码,每次讲解一个新的作用,我们都要将代码恢复成下面这个样子:

CSS样式:

.container{
      background-color: black;
           }

.div1{
      background-color: aqua;
      width: 100px;
      height: 100px;
      }
.div2{
       background-color: red;
       width: 100px;
       height: 100px;
     }

html内容:


    
    

程序运行效果:

1.使用overflow:hidden隐藏溢出

当父div拥有固定的高度时,比如height:500px,我们使用overflow:hidden来隐藏溢出。

当使用div+css布局时,会出现很多的div嵌套——父div内嵌套一个或多个的子div,默认情况下,父div的高度是auto——它可以被子div任意的撑大。然而父div也可以有固定的高度(或宽度),比如height:500px,那么如果子div的高度超过了这个值,在默认情况下,子div会超出父div的束缚,这就是溢出。我们可以通过设置父div的CSS属性——overflow来对子div进行控制。这里使用overflow:hidden来隐藏子元素溢出的部分。

2.使用overflow:hidden清除浮动

当父元素的高height:auto时,我们使用overflow:hidden清除浮动

当我们为div1和div2加上一个属性:float:left后,我们会发现:背景色为黑色父div消失了,这是因为: 浮动的元素脱离文档元素, 不占据空间。 不浮动的元素会直接无视掉这个元素:父div无视了自己的两个孩子,其高度为0(因为我们没有设置父div的高度),所以父div没有显现。

CSS中overflow:hidden如何实现溢出,坍塌,清除浮动

想让父div“宽容的”接受自己的两个孩子有两个办法:

(1)第一个就是让父亲也浮动起来 ,我们试着给父div添加一个CSS属性:float:right,会发现两个颜色块出现在了屏幕的右边,依然没有父div的身影,然而通过开发人员工具不难看出父div已经包容子div

CSS中overflow:hidden如何实现溢出,坍塌,清除浮动

CSS中overflow:hidden如何实现溢出,坍塌,清除浮动

这是因为浮动的div已经失去了其“独霸一行”的能力,我们需要手动为父div设置一个宽度,比如width:500px,之后可以看到:

CSS中overflow:hidden如何实现溢出,坍塌,清除浮动

(2)第二种就是为父亲添加overflow:hidden属性用以清除浮动

.container{ background-color: black; overflow:hidden;}

这时的效果如图所示:

CSS中overflow:hidden如何实现溢出,坍塌,清除浮动

总结:

(1)(2)一个使用了都浮动的战略,一个使用了清除浮动的战略使父div宽容的接受了子div,两者的区别在于都浮动需要额外设定父div的宽度,因为浮动起来的div失去了div独占一行的特性,而清除浮动的父div仍然霸道。

3.解除坍塌

可以使用overflow:hidden解除margin坍塌,当然了,坍塌是不分父div的高度是否固定的

首先要知道什么叫做坍塌:

我们为div1添加一个属性:margin-top:50px,我们想象中效果是这样的:

CSS中overflow:hidden如何实现溢出,坍塌,清除浮动

但实际上是这样的(这是开发人员工具下的效果):

CSS中overflow:hidden如何实现溢出,坍塌,清除浮动

CSS中存在一个margin collapse,即边界塌陷或者说边界重叠。对于上下两个并列的div块而言,上面div的margin-bottom和下面div的margin-top会塌陷,也就是会取上下两者margin里较大值作为显示值,所以从这个意义上说:CSS及浏览器的设计者们希望我们在布局时,如果遇到上下两个并排内容块的安排,好只设置其中每个块上或下margin的一处即可。

但对于父块DIV内含子块DIV的情况,就会按另一条CSS惯例来解释了,那就是:对于有块级子元素的元素(父元素)计算高度的方式,如果元素没有上下边框和填充,那其高度就是第一个子元素顶部和底部边框边缘之间的距离。

结论:

解决父子DIV中顶部margin cllapse的问题,需要给父div设置:

1、边框,当然可以设置边框为透明;

2、为父DIV添加padding,或者至少添加padding-top;

此外,还可以通过over-flow来解决

(1)我们可以为父div添加overflow:hidden解决这个问题:

.container{

background-color: black;

overflow: hidden;

}

效果如图所示:

CSS中overflow:hidden如何实现溢出,坍塌,清除浮动CSS中overflow:hidden如何实现溢出,坍塌,清除浮动

CSS中overflow:hidden如何实现溢出,坍塌,清除浮动

(2)会思考的读者一定会考虑浮动能不能解决这个烦人的问题,这里为了排除overflow:hidden对未定高度的父div的影响,我们为父div设置一个高度:

.container{

background-color: black;

height: 200px;

}

我们为所有子div添加一个浮动属性(比如float:left),显而易见,只要是浮动的子div就会完全避免坍塌的问题(PS:无论父div是否浮动):

CSS中overflow:hidden如何实现溢出,坍塌,清除浮动

CSS中overflow:hidden如何实现溢出,坍塌,清除浮动

可以使用overflow:hidden来解除坍塌,浮动的div根本不用考虑坍塌。

以上是“CSS中overflow:hidden如何实现溢出,坍塌,清除浮动”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


本文名称:CSS中overflow:hidden如何实现溢出,坍塌,清除浮动-创新互联
URL标题:http://bjjierui.cn/article/cdcsip.html

其他资讯