博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
清除浮动,浮动元素的高度自适应问题
阅读量:7113 次
发布时间:2019-06-28

本文共 1100 字,大约阅读时间需要 3 分钟。

一、问题

当有时不浮动的父元素装载着浮动的子元素时,这个时候父元素的高度不会跟着的子元素的内容高度而自适应高度变大。比如截图的第一行图,上面一条黑色的粗线,就是父div的边框(为了看效果,我设置了父div的border:5px。左右两边是各浮动一个div)。

于是乎,我想解决这个父元素高度不会跟随着子元素的内容而变化的问题。谷歌了一下,找到答案

二、解决方法

参考来源:http://www.ruanyifeng.com/blog/2009/04/float_clearing.html

里面提到了四种方法,分别对应下面这张图的第2、3、4、5行的图。并且这是在IE6、7浏览器下的截图,说明能很好的兼容在IE低版本浏览器。

法一:添加空元素

直接在浮动的子元素下添加一个非浮动的空元素。原因是父元素肯定会考虑非浮动元素的位置,非浮动的空元素又是放在浮动元素的下面,所以父元素的高度就被撑开了。

1、 不好的地方就是添加了冗余代码,违背语义化的标准,特别是现在提倡语义化,article、footer、header都使用具有语义化的标签来写。

2、但是,这是一种我喜欢的方法,直接添加非浮动的子元素,简单。另外一种我比较喜欢的方法就是使用clear:both,好吧,原谅我这么土,喜欢用这个方法,因为我觉得够easy,又能做到兼容。

添加空元素

 

 法二:父元素设置为浮动

父元素带着子元素一起浮动,duang~

父元素设置为浮动

 

法三:浮动元素的自动清除

设置父元素的一个css样式。overflow:hidden

浮动元素的自动clearing

 

法四:通过css添加子元素

通过css添加子元素

/* css样式 */.clearfix:after { content: "\0020"; display: block; height: 0; clear: both; }.clearfix { zoom: 1; // 触发IE的hasLayout属性,该属性IE独有 }

 

如果为了满足语义化、不添加冗余代码,就使用方法四。

关于浮动元素的clearing问题,就解决了

 

转载地址:http://hzwel.baihongyu.com/

你可能感兴趣的文章
Mybatis之设计模式之迭代器模式
查看>>
房间号生成器
查看>>
CentOS 6.8 安装vsftpd
查看>>
js设计模式 --- 装饰设计模式
查看>>
Flask源代码阅读笔记(一)——应用启动
查看>>
IOS精品源码,仿探探UIButton封装iOS提示弹框迅速引导页自定义导航栏
查看>>
setState的一个Synthetic Event Warning
查看>>
通读Python官方文档之wsgiref(未完成)
查看>>
2017回顾
查看>>
Maven3 快速入门
查看>>
《编写可读代码的艺术》——表面层次的改进
查看>>
RxJS Observable - 一个奇特的函数
查看>>
大型WEB架构设计
查看>>
小程序TAB列表切换内容动态变化,scrollview高度根据内容动态获取
查看>>
swoole_table 实现原理剖析
查看>>
你需要知道面试中的10个JavaScript概念
查看>>
TiDB RC4 Release
查看>>
阿里云有对手了!CDN横评:腾讯云优势明显
查看>>
Ajax常用方法
查看>>
Glide 简单流程分析
查看>>