浅谈clearfix类和clear清除浮动
来源:互联网 发布:mac系统截图快捷键 编辑:程序博客网 时间:2024/05/21 04:20
CSS浮动会对原本的布局产生破坏,所以我们会考虑清除浮动产生的影响,本文不谈浮动以及各种清除浮动的方法,只讨论clearfix类和clear清除浮动。
在网页设计中,很常见的一种情况是给内容一个div作为包裹容器,而这个包裹容器不设置高度,而是让里面的内容撑开包裹容器的高度。
<div class="wrapper" > <div class="content"> </div></div>
上面content里的内容会把父元素wrapper撑开,但是如果内容区浮动脱离了文档流父元素高度就无法被内容撑开。
<div class="wrapper" > <div class="content-left" style="float:left"> </div> <div class="content-right" style="float:right"> </div></div>
在这种情况下为了让父元素高度还能够被子元素撑开,最常见的一种方式就是给父元素添加一个clearfix类
.clearfix:after { content: " "; display: block;; line-height: 0; height: 0; visibility: hidden; clear: both;}<div class="wrapper clearfix" > <div class="content-left" style="float:left"> </div> <div class="content-right" style="float:right"> </div></div>
这时候父元素就会被子元素内容撑开高度(尽管子元素浮动了),这时父元素div.wrapper高度是Number.MAX(div.content-left.style.height,div.content-right.style.height)
。
原理很简单,clearfix类会在wrapper创建一个伪类,并且这个类会清除左右浮动,所以按照布局会在content-left
,content-right
下,而创建的这个伪类是没有脱离文档流的,自然能够撑开父元素wrapper的高度。
从上面代码中我们可以看到.clearfix
类用到了
clear:both
clear是css中用来清除浮动的,clear
有多个属性值,在项目中常用的是clear:both
,这个与clearfix类的区别是.clearfix
一般用在浮动元素的父元素上,而clear一般用在浮动元素的平级元素上。
尽管清除浮动的方法有很多,但在项目中常用clearfix类来清除浮动,因为不用添加额外无语义的元素来清除浮动,而且套路固定,容易理解。
clearfix类CSS代码:
clearfix::after display: block content: "." height: 0 line-height: 0 clear: both visibility: hidden
更多内容请阅读准确理解CSS clear:left/right的含义及实际用途
- 浅谈clearfix类和clear清除浮动
- 【css】清除浮动(clearfix 和 clear)的用法
- css之使用clearfix类清除浮动
- 清除浮动(clearfix)
- clearfix清除浮动
- 清除浮动(clearfix)
- clearfix清除浮动进化史
- clearfix清除浮动
- css 清除浮动 clearfix
- clearfix清除浮动进化史
- 清除浮动 clearfix
- clearfix清除浮动
- clearfix清除浮动方案
- clearfix清除浮动进化史
- 清除浮动:clearfix
- 浮动和清除浮动 float clear
- 浅谈CSS清除浮动(ClearFix)的方法
- 简述clear和clearfix
- Web服务器和客户端
- static用法
- Binder服务使用过程
- CodeForces 27 E.Number With The Given Amount Of Divisors(dfs)
- HTML中      等6种空白空格的区别
- 浅谈clearfix类和clear清除浮动
- 单变量分析绘制-学习笔记
- Docker01_基础环境搭建
- MySQL绿色版安装指南
- linux 6.5 杂集
- 小白解决CENTOS7错误:Cannot find a valid baseurl for repo: base/7/x86_6
- (string)、toString()和String.valueOf()三种类型转换
- jq 判断是为数字
- 再探Linux内核write系统调用操作的原子性