热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

div元素自动换行撑开_元素坍塌的6种解决办法

好,咱们废话不多说,直接干货:首先,什么是元素坍塌?很简单,一句话讲完:就是内部元素设置了浮动&

好,咱们废话不多说,直接干货:

首先,什么是元素坍塌?很简单,一句话讲完:就是内部元素设置了浮动(float)导致外部父元素无法被撑开,从而就坍塌了。

不理解?直接上代码:






下面是样式:
.wai{border:10px solid red;}
.nei{width:300px;height:300px;float:left;border:4px solid #000000;}

如图就是这个效果:wai没有设置固定宽高,nei有固定宽高,并且有浮动,nei就浮动到wai上面,从电脑侧面看,nei在wai上面,所以nei无法撑开wai,wai就塌了;

0238202ffd17da1e360fc9456fdaca22.png

怎么解决?下面我给出6个小技巧希望帮助到大家。

1,第一种方法:在父元素wai内部结束位置增加一个空的div,并清除浮动。

直接上代码:







下面是样式:
.wai{border:10px solid red;}
.nei{width:300px;height:300px;float:left;border:4px solid #000000;}
.xia{clear:both;}

如图,就是这个效果(父元素被撑开):

54c5bc6da2bde3748430919783a344f6.png

2,第二种方法:给父元素(wai)设置overflow:hidden属性来清除浮动。

代码如下:






下面是样式:
.wai{border:10px solid red;overflow:hidden;zoom:1;}
.nei{width:300px;height:300px;float:left;border:4px solid #000000;}

如图效果一样;(不过要注意的是如果nei 是margin负值定位或者绝对定位就会被裁剪)

54c5bc6da2bde3748430919783a344f6.png

3,第三种方法:给wai也设置浮动(float)。

代码如下:






下面是样式:
.wai{border:10px solid red;float:left;}
.nei{width:300px;height:300px;float:left;border:4px solid #000000;}

效果如下图:(不过此方法值的注意的是,虽然wai可以被撑开,但wai失去了自身的宽高,同时如果wai后面有别的元素,也会受到影响)

4d804aa2a9485eb1bebb11fac453ca65.png

4,第四种方法:给wai设置固定高度(需要注意前提是知道nei 的宽高,wai的height=nei的height+2*border)

代码如下:






下面是样式:
.wai{border:10px solid red;height:308px;}
.nei{width:300px;height:300px;float:left;border:4px solid #000000;}

效果如下图:

54c5bc6da2bde3748430919783a344f6.png

5,第五种方法:给wai设置:display:inline-block/inline-flex/inline-table都可以实现,缺点是会失去自身的宽高。

代码如下:






下面是样式:
.wai{border:10px solid red;display:inline-block;}
.nei{width:300px;height:300px;float:left;border:4px solid #000000;}

效果如下:

4d804aa2a9485eb1bebb11fac453ca65.png

6,第六种方法:给外(父元素)添加伪类:before/:after,来解决。(这种方法常用,并且不会影响页面布局,着力推荐,效果杠杠的!)

代码如下:






下面是样式:
.wai{border:10px solid red;zoom:1;}
.wai:after{
content:"";
display:block;/*添加内容以块元素显示,占满整个空间*/
height:0;/*避免添加内容占据高度影响布局*/
clear:both;
visibility:hidden;/*如果里面有内容隐藏掉内容*/
}
.nei{width:300px;height:300px;float:left;border:4px solid #000000;}

效果如下图:

54c5bc6da2bde3748430919783a344f6.png

这个方法原理上相当于第一种方法(在wai内添加一个空元素div,但却更加实用,更加强大)

以上的几个小技巧都是自己一点经验,希望可以帮助到大家,欢迎大家批评指正。么么哒~



推荐阅读
author-avatar
kobe0390
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有