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 相关文章推荐
网页布局中CSS样式无效的十个重要原因详解
Aug 10 HTML / CSS
纯CSS3制作的简洁蓝白风格的登录模板(非IE效果更好)
Aug 11 HTML / CSS
css3实现背景图片拉伸效果像桌面壁纸一样
Aug 19 HTML / CSS
css3的图形3d翻转效果应用示例
Apr 08 HTML / CSS
CSS3 @font-face属性使用指南
Dec 12 HTML / CSS
CSS3 display知识详解
Nov 25 HTML / CSS
利用CSS3把图片变成灰色模式的实例代码
Sep 06 HTML / CSS
纯CSS3实现扇形动画菜单(简化版)实例源码
Jan 17 HTML / CSS
HTML5 Canvas draw方法制作动画效果示例
Jul 11 HTML / CSS
详解三种方式实现平滑滚动页面到顶部的功能
Apr 23 HTML / CSS
HTML5中外部浏览器唤起微信分享功能的代码
Sep 15 HTML / CSS
css常用字体属性与背景属性介绍
Feb 28 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的FTP学习(二)
2006/10/09 PHP
用PHP和ACCESS写聊天室(九)
2006/10/09 PHP
如何修改和添加Apache的默认站点目录
2013/07/05 PHP
php数组保存文本与文本反编成数组实例
2014/11/13 PHP
php格式化json函数示例代码
2016/05/12 PHP
php判断用户是否关注微信公众号
2016/07/22 PHP
PHP实现微信对账单处理
2018/10/01 PHP
彪哥1.1(智能表格)提供下载
2006/09/07 Javascript
Javascript-Mozilla和IE中的一个函数直接量的问题
2007/01/09 Javascript
Jquery Ajax的Get方式时需要注意URL地方
2011/04/07 Javascript
js控制的回到页面顶端goTop的代码实现
2013/03/20 Javascript
javascript unicode与GBK2312(中文)编码转换方法
2013/11/14 Javascript
jquery 中ajax执行的优先级
2015/06/22 Javascript
jQuery随手笔记之常用的jQuery操作DOM事件
2015/11/29 Javascript
prototype框架中美元符号$用法分析
2016/01/22 Javascript
让你一句话理解闭包(简单易懂)
2016/06/03 Javascript
全面解析JS字符串和正则表达式中的match、replace、exec等函数
2016/07/01 Javascript
解析如何利用iframe标签以及js制作时钟
2016/12/08 Javascript
jQuery实现拖拽可编辑模块功能代码
2017/01/12 Javascript
浅谈函数调用的不同方式,以及this的指向
2017/09/17 Javascript
详解在React项目中安装并使用Less(用法总结)
2019/03/18 Javascript
TensorFlow.js 微信小程序插件开始支持模型缓存的方法
2020/02/21 Javascript
vue 使用 vue-pdf 实现pdf在线预览的示例代码
2020/04/26 Javascript
[07:06]2018DOTA2国际邀请赛寻真——卫冕冠军Team Liquid
2018/08/10 DOTA
Python实现将DOC文档转换为PDF的方法
2015/07/25 Python
简单实现python爬虫功能
2015/12/31 Python
Python和Java进行DES加密和解密的实例
2018/01/09 Python
Python批量将图片灰度化的实现代码
2020/04/11 Python
自荐信格式
2013/12/01 职场文书
培训讲师邀请函
2014/01/10 职场文书
老干部工作先进集体事迹材料
2014/05/21 职场文书
卫生院艾滋病宣传活动小结
2014/07/09 职场文书
材料化学专业求职信
2014/07/15 职场文书
通用员工手册范本
2015/05/14 职场文书
python利用while求100内的整数和方式
2021/11/07 Python
电脑只能进入安全模式无法正常启动的解决办法
2022/04/08 数码科技