css之clearfix的用法深入理解(必看篇)


Posted in HTML / CSS onMay 21, 2023

如果有一个DIV作为外部容器,内部的DIV如果设置了float样式,则外部的容器DIV因为内部没有 clear,导致不能被撑开。看下面的例子:

Div布局如下:

css之clearfix的用法深入理解(必看篇)

Css代码如下:

.out{border:1px solid #F00; width:500px;}   
.inner1{width:200px; height:200px; float:left; border:1px solid #00F;}   
.inner2{width:200px; height:200px; float:left; border:1px solid #0F0;}

IE和FF显示如下图:

css之clearfix的用法深入理解(必看篇)

传统的人解决方法:

css之clearfix的用法深入理解(必看篇)

但是,这么多加一个DIV有点不妥。一是多了一个没有意义的DIV,二是在用dojo做Drag & Drop的时候,由于这个DIV是容器DIV的一个字节点,如果这个节点被移动,则会造成排版上的Bug:如果要显示的蓝框的DIV被移到这个DIV之后,则因为clear:both,它会被强制换一行显示。所以,最好使用下面clearfix方法。外层div加上clearfix样式。

clearfix定义如下:

.clearfix:after{visibility:hidden;display:block;font-size:0;content: " ";clear:both;height:0;}   
.clearfix{*zoom:1;}

css之clearfix的用法深入理解(必看篇)

这样修改以后显示正常。

那段代码是用来清除浮动的。

以下代码可以这么解释:

.clearfix:after {       <----在类名为“clearfix”的元素内最后面加入内容;   
    content: ".";     <----内容为“.”就是一个英文的句号而已。也可以不写。   
    display: block;   <----加入的这个元素转换为块级元素。   
    clear: both;     <----清除左右两边浮动。   
    visibility: hidden;      <----可见度设为隐藏。注意它和display:none;是有区别的。仍然占据空间,只是看不到而已;   
    height: 0;     <----高度为0;   
    font-size:0;    <----字体大小为0;   
}

整段代码就相当于在浮动元素后面跟了个宽高为0的空div,然后设定它clear:both来达到清除浮动的效果。(这个css的原理是经过使用 after伪对象,它将在应用clearfix的元素结尾添加content中的内容,也就是一个".",并且把他设置为块级元素 (display="block");高度设置为0,clear="both",然后将其内容隐藏掉(visibility="hidden").这样就会撑开此块级元素.)

之所以用它,是因为,你不必在html文件中写入大量无意义的空标签,又能清除浮动。

.clearfix { *zoom:1;}   <----这是针对于IE6的,因为IE6不支持:after伪类,这个神奇的zoom:1让IE6的元素可以清除浮动来包裹内部元素。具体意思的话,不用深究,听说微软的工程师自己都无法解释清楚。height:1%效果也是一样。

以上这篇css之clearfix的用法深入理解(必看篇)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

 
HTML / CSS 相关文章推荐
CSS3中的5个有趣的新技术
Apr 02 HTML / CSS
CSS3五个技巧给你的网站带来出色的效果
Apr 02 HTML / CSS
基于CSS3的CSS 多栏(Multi-column)实现瀑布流源码分享
Jun 11 HTML / CSS
HTML5离线缓存在tomcat下部署可实现图片flash等离线浏览
Dec 13 HTML / CSS
将HTML5 Canvas的内容保存为图片借助toDataURL实现
May 20 HTML / CSS
html5 video标签屏蔽右键视频另存为的js代码
Nov 12 HTML / CSS
分享全球十款超强HTML5开发工具
May 14 HTML / CSS
web字体加载方案优化小结
Nov 29 HTML / CSS
详解HTML5如何使用可选样式表为网站或应用添加黑暗模式
Apr 07 HTML / CSS
HTML5中input输入框默认提示文字向左向右移动的示例代码
Sep 10 HTML / CSS
CSS3通过var()和calc()函数实现动画特效
Mar 30 HTML / CSS
css position fixed 左右双定位的实现代码
Apr 29 HTML / CSS
CSS中calc(100%-100px)不加空格不生效
May 07 #HTML / CSS
HTML中link标签属性的具体用法
May 07 #HTML / CSS
css弧边选项卡的项目实践
May 07 #HTML / CSS
HTML5中的DOCUMENT.VISIBILITYSTATE属性详解
May 07 #HTML / CSS
CSS实现鼠标悬浮动画特效
CSS link与@import的区别和用法解析
May 07 #HTML / CSS
html,css,javascript是怎样变成页面的
May 07 #HTML / CSS
You might like
PHP中的array数组类型分析说明
2010/07/27 PHP
php中chdir()函数用法实例
2014/11/13 PHP
PHP实现CSV文件的导入和导出类
2015/03/24 PHP
php使用parse_str实现查询字符串解析到变量中的方法
2017/02/17 PHP
alixixi runcode.asp的代码不错的应用
2007/08/08 Javascript
写JQuery插件的基本知识
2013/11/25 Javascript
用javascript将数据导入Excel示例代码
2014/09/10 Javascript
js实现添加删除表格(两种方法)
2017/04/27 Javascript
深入理解ES7的async/await的用法
2017/09/09 Javascript
微信小程序6位或多位验证码密码输入框功能的实现代码
2018/05/29 Javascript
angularJs中json数据转换与本地存储的实例
2018/10/08 Javascript
微信jssdk逻辑在vue中的运用详解
2018/11/14 Javascript
亲自动手实现vue日历控件
2019/06/26 Javascript
layer设置maxWidth及maxHeight解决方案
2019/07/26 Javascript
ant-design-vue 实现表格内部字段验证功能
2019/12/16 Javascript
React Native中ScrollView组件轮播图与ListView渲染列表组件用法实例分析
2020/01/06 Javascript
Python列表生成器的循环技巧分享
2015/03/06 Python
Fiddler如何抓取手机APP数据包
2016/01/22 Python
Python文本特征抽取与向量化算法学习
2017/12/22 Python
python针对不定分隔符切割提取字符串的方法
2018/10/26 Python
python实现杨氏矩阵查找
2019/03/02 Python
Python3安装psycopy2以及遇到问题解决方法
2019/07/03 Python
Python多版本开发环境管理工具介绍
2019/07/03 Python
详解Python3 pandas.merge用法
2019/09/05 Python
python实现输入任意一个大写字母生成金字塔的示例
2019/10/27 Python
python数据预处理 :数据共线性处理详解
2020/02/24 Python
opencv python 图片读取与显示图片窗口未响应问题的解决
2020/04/24 Python
找到不普通的东西:Bonanza
2016/10/20 全球购物
优秀员工自荐信范文
2013/10/05 职场文书
四年大学自我鉴定
2014/02/17 职场文书
上党课的心得体会
2014/09/02 职场文书
幼儿园园长新年寄语2015
2014/12/08 职场文书
六年级语文下册教学计划
2015/01/22 职场文书
给老婆的保证书怎么写
2015/05/08 职场文书
2016年11月份红领巾广播稿
2015/12/21 职场文书
用Python创建简易网站图文教程
2021/06/11 Python