侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

清除浮动的理解

2024-05-07 星期二 / 0 评论 / 0 点赞 / 58 阅读 / 2140 字

先上clear和clearfix的代码:.clear{clear: both;display: block;font-size: 0;height: 0;line-height: 0;overflow

先上clear和clearfix的代码:

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

这些代码都很眼熟了

接上来上例子的css代码:

	.fl{float:left;}	.demo{background:#ccc;}	.item1{background:#f90;height:100px;width:100px;}	.item2{background:#fc0;height:200px;width:100px;}

例子html代码:

    <h2>用 clear 清除浮动</h2>    <div class="demo">        <div class="fl item1"></div>        <div class="fl item2"></div>        <div class="clear"></div>        </div>    <h2>用 clearfix 清除浮动</h2>    <div class="demo clearfix">        <div class="fl item1"></div>        <div class="fl item2"></div>    </div>

很简单的例子,需要关注的是,.demo没有高度,代码的愿景是.demo元素的高度由子元素的高度决定的。但是由于其子元素都是浮动的,官方说法是脱离了文档,导致.demo的高度没有被撑开,于是看不到.demo的灰色背景。

解决方法有很多,先了解两种,clear和clearfix;就如代码上看的clear方法是在.demo的里面的最后加上一个有clear类的子元素。加上之后,意思是,.demo里面的浮动在这句之后就结束了,也就是传说中的清除浮动(clear:both属性是关键),所以.demo高度就被其子元素撑开了。

其实clearfix方法也是类似,应该只是用法不同而已;clearfix:after规定了在.demo内容后面跟上一个内容为空的东西,而且这玩意还有clear:both等属性,于是也清除浮动了。clearfix一般加在.demo里面,也就是浮动元素的父亲。不过像clear创建一个空的div元素,给它加上clearfix类也可以,原理一样。

广告 广告

评论区