博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CSS中clear:both的理解
阅读量:6805 次
发布时间:2019-06-26

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

hot3.png

在CSS中我们会经常要用到“清除浮动”Clear,比较典型的就是clear:both;    

CSS手册上是这样说明的:该属性的值指出了不允许有浮动对象的边。这个属性是用来控制float属性在文档流的物理位置的。    
   
当属性设置float(浮动)时,其所在的物理位置已经脱离文档流了,但是大多时候我们希望文档流能识别float(浮动),或者是希望float(浮动)后面的元素不被float(浮动)所影响,这个时候我们就需要用clear:both;来清除。

语法: clear : none | left |right | both

参数:  

none : 允许两边都可以有浮动对象    
both : 不允许有浮动对象    
left : 不允许左边有浮动对象    
right : 不允许右边有浮动对象

说明: 该属性的值指出了不允许有浮动对象的边。请参阅float属性。 对应的脚本特性为clear

比如:  

1 1 
this is 1st row

2 2 
this is 2ed row

3 3 
this is the third row

如果不用清除浮动,那么第3列文字就会和第1、2列文字在一起 ,如下图:

所以我们在第3个这列加一个清除浮动 clear:both;  

this is 1st row

this is 2ed row

this is the third row

这时的效果如下:

我们在网页设计时还有一种很普遍的情况:

 1 
 2 #main {background-color: #3399CC;width: 600px;padding: 20px;} 3 #sidebar {background-color: #FF6600;    float: left;width: 130px;} 4 #container {float: right;width: 420px;background-color: #FFFF33;} 5  6 
 7 
content1 content1 content1 8 
content2 content2 content2 9 10 
content3

该页面测试在IE下效果正是我们所要:蓝色块内部有红色和黄色两个色块内容,同时在蓝色块以下是第三段文本。

 

不过Firefox的效果可不是这样的,如下所示:

我们不能单单想在下一层清除就能完成我们的工作,我们必须在浮动元素所在标签闭合之前及时进行“清除”。

 1 
 2 #main {background-color: #3399CC;width: 600px;padding: 20px;} 3 #sidebar {background-color: #FF6600;    float: left;width: 130px;} 4 #container {float: right;width: 420px;background-color: #FFFF33;} 5 .clear {clear: both;} 6  7 
 8 
content1 content1 content1 9 
content2 content2 content210 
11 12 

content3

这时Firefox下的页面显示也就正常了

不过这时会因多加的<div class="clear"></div>标签会引起IE和FF高度变化(如下图,显然IE下蓝色背景的高度增加了):

这个高度变化可以通过如下方法解决:

1 .clear {2      clear: both;3      height:1px;4      margin-top:-1px;5      overflow:hidden;6 }

转载于:https://my.oschina.net/u/658505/blog/152956

你可能感兴趣的文章
XAML绑定
查看>>
Zend Studio 10.0.1 发布
查看>>
C# Language Tour
查看>>
Debian 和Ubuntu Mono 3.0 部署包
查看>>
方法代码ASP.NET MVC如何使用Ajax的辅助方法
查看>>
c++引用详解
查看>>
Senparc.Weixin SDK 微信公众号 .NET 开发教程 索引
查看>>
Android SDK Permission大全访问权限
查看>>
sicp第一章部分习题解答
查看>>
异步委托与多线程
查看>>
nullnullvc中加花
查看>>
索引测试代码
查看>>
广度优先搜索nodeHDU/HDOJ 1242 Rescue 典型的迷宫广度优先搜索题
查看>>
多注入
查看>>
iPhone App开发实战手册学习笔记(5)之IOS常用机制
查看>>
Git 使用
查看>>
php正则
查看>>
用长按键重复输入 - Mac OS X Lion
查看>>
thinkphp 语言包丢失
查看>>
.net的XML对象序列化VS WCF中xml序列化问题
查看>>