如果让父元素包住浮动的子元素?主要有以下几种方法:
1:让父元素也一起浮动:经测试该方法可行,而且四周全部包住,非常严实.但是如果当前的子元素有多个父级的话,
那么每个父级元素都要设置浮动,甚至要一直写到
,所以该方法pass。
2.给父元素设置溢出隐藏属性:同样也可实现要求,但这种方法有很多兼容性问题,大家课后可多打开几个浏览器测试
3.给当前的父元素中添加一个空的块元素,这个新元素只做一件事,清除它周围的浮动元素
立即学习“前端免费学习笔记(深入)”;
经测试也能实现要求,这种方法是最简单最直观,而且没有任何兼容问题,但却有一个致命的问题,
那就是给当前的子元素列表中添加了一个无用的元素,当我们用js和php等脚本语言进行数据遍历的时候会非常麻烦
因为这个元素并不是我们需要的,必须单独的进行处理,那么有没有一种二全其美的方案:即保证兼容性,又不用添加新元素呢?
有,用我们之前学过的伪元素来解决。
4. 给父元素添加:after伪类,在后面添加一个空元素,直接设置它的属性即可;
7.层次元素之间的清除浮动的技巧 .parent {background-color: lightskyblue;border: 2px solid red;/*让父元素一起浮动,让它包住浮动的子元素*//*float:left;*//*给父元素设置内容溢出隐藏功能*//*overflow: hidden;*/}.parent:after {/*1.添加一个空元素*/content: '';/*2.默认为行内元素,所以要转为块元素*/display: block; /*3.直接清除二边的浮动*/clear: both;/*如果ie下显示有问题,可以加上*//*z-index: 1;*//*可能你看过有的地方是这样写的:*//*添加一个空格*//*content: '\0020';*//*然后让这个空格高度为0,这样就根本不会显示出来*//*height: 0;*/}.child {width: 200px;height: 200px;background-color: lightgreen;/*设置提示文本的水平垂直居中*/text-align: center;line-height: 200px;/*当前父元素没有声明宽高,它是由子元素的宽高撑起来的*//*下面我们将子元素进行浮动,你将会看到非常有意思的事情发生*/float:left;/*结果你会发现,子元素浮动之后,脱离了文档流,它与原来的父级元素就没有了关联,所以父级直接压缩了,无法再包住子元素*/}.clear {clear: both;}子元素<!-- -->
以上就是css层次元素之间的清除浮动的技巧的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1610787.html
微信扫一扫
支付宝扫一扫