CSS之float和clear
文章目录
- CSS之float和clear
- 一、Float属性
- 高度坍塌
- 解决办法
- 方法一:
- 方法二:
- 方法三:
- 字围现象
- 二、Clear属性
CSS之float和clear
盒子布局是现在较为流行的网页布局方式,最近的几道经典面试题都与float及clear有关。“float是魔鬼,会影响其他相邻元素;但是clear是小白,其智慧影响自身,不会对其他相邻元素造成影响”——某位大牛
一、Float属性
float就是浮动,让元素脱离文档流,让元素漂浮起来,和普通的文档流不在同一个层面上。float是将元素左右移动而不能上下移动
高度坍塌
谈到float就不得不谈到高度坍塌,那么什么是高度坍塌呢?
上面我们讲到float是让元素脱离文档流,让其不处于普通的文档流,那这必然会引起没有内容将父元素撑起来,使其高度->0,就会造成父元素高度坍塌的情况。
<style>.father {border: 2px solid black;}.brother {width: 200px;height: 200px;background-color: green;}.first {width: 100px;height: 100px;background-color: pink;float: left;}.second {width: 100px;height: 100px;background-color: red;float: left;}.third {width: 100px;height: 100px;background-color: blue;float: left;}</style>
<body><div class="father"><div class="first">元素1</div><div class="second">元素2</div><div class="third">元素3</div><!-- <div class="clear"></div> --></div><div class="brother">father的兄弟元素</div>
</body>
这就是所谓的高度坍塌,元素1,元素2,元素3都设置为了左浮动,导致父元素的上下边框贴在了一起,同时也遮住了兄弟元素的一部分。
解决办法
方法一:
给父元素添加overflow: hidden (建议)
.father {border: 2px solid black;/* 清除浮动的常用方法 */overflow: hidden; }
方法二:
通过父元素的伪类选择器
.father::after {/* 伪对象选择器结合content使用,给选中元素添加内容 */content: '';display: block;clear: both;}
方法三:
在被影响元素的后面添加一个空元素(不建议使用,给文档添加了无意义的元素结构)
.clear {clear: both;}
问题解决:
字围现象
在上面的代码中我们发现父元素的高度坍塌会影响到其兄弟元素,遮住了一部分
虽然遮住了一部分的兄弟元素,但是文字却没有遮住,而这种现象就是float的字围现象。
讲完了float,我们再来看看clear
二、Clear属性
clear就是清除浮动,清除当前元素左右的浮动对象(不是将浮动对象删除),更具体一点就是当前元素的边不能和前面的浮动元素相邻
这样的布局就需要用到clear属性,当我们给元素1设置float:left时,元素2会贴到元素1后面。所以我们需要清除元素1对元素2产生的影响,给元素2添加一个clear:both或clear:left,这样元素2就会到下一行去。
CSS之float和clear相关推荐
- 用CSS的float和clear创建三栏液态布局的方法(转载)
三栏布局是目前最常见的网页布局,主要页内容放在中间一栏,边上的两栏放置导航链接之类的内容.基本布局一般是标题之下放置三栏,三栏占据整个页面的宽度,最后在页的底端放置页脚,页脚也占据整个页面宽度. ...
- css 中 float 和 clear 的作用
相当于原来的 align 的作用,但能力要比 align 强的多.一旦发出float:left或float:right命令,被我浮动的对像就会向左或向右移动直到遇到边框( border) .填充( p ...
- 用CSS的float属性创建三栏布局网页的方法
三栏布局是最常见的网页布局,主要页内容放在中间一栏,边上的两栏放置导航链接之类的内容.基本布局一般是标题之下放置三栏,三栏占据整个页面的宽度,最后在页的底端放置页脚,页脚也占据整个页面宽度.本文介绍一 ...
- 经验分享:CSS浮动(float,clear)通俗讲解
很早以前就接触过CSS,但对于浮动始终非常迷惑,可能是自身理解能力差,也可能是没能遇到一篇通俗的教程. 前些天小菜终于搞懂了浮动的基本原理,迫不及待的分享给大家. 写在前面的话: 由于CSS内容比较多 ...
- 关于CSS浮动(float,clear)的通俗讲解(经验分享)
很早以前就接触过CSS,但对于浮动始终非常迷惑,可能是自身理解能力差,也可能是没能遇到一篇通俗的教程. 前些天小菜终于搞懂了浮动的基本原理,迫不及待的分享给大家. 写在前面的话: 由于CSS内容比较多 ...
- 杨元:CSS浮动(float,clear)通俗讲解
zt http://www.cnblogs.com/iyangyuan/archive/2013/03/27/2983813.html 很早以前就接触过CSS,但对于浮动始终非常迷惑,可能是自身理解能 ...
- 【转贴】没有div没有float没有clear没有hack的超强CSS布局
[转贴]没有div没有float没有clear没有hack的超强CSS布局 原贴地址:http://parandroid.com/no-float-css-layout/ CSS + XHTML 有多 ...
- CSS浮动(float,clear)通俗讲解- 杨元- 博客园
学习CSS布局 主页目录 inline-block 你可以创建很多网格来铺满浏览器.在过去很长的一段时间内使用 float 是一种选择,但是使用 inline-block 会更简单.让我们看下使用这 ...
- (转) 杨元:CSS浮动(float,clear)通俗讲解
http://www.cnblogs.com/iyangyuan/archive/2013/03/27/2983813.html 很早以前就接触过CSS,但对于浮动始终非常迷惑,可能是自身理解能力差, ...
最新文章
- wcf系列学习5天速成——第四天 wcf之分布式架构(转载)
- win10设置默认打开方式
- 点到点链路上的ospf
- ABAP正则表达式 vs SPLIT INTO
- dubbo的invoke命令_dubbo 调试服务telnet命令
- 20172332 2017-2018-2 《程序设计与数据结构》第七周学习总结
- linux3.3内核去哪下载,Linux Kernel下载|Linux Kernel v3.18.3 稳定版 - 121下载站
- Win32项目生成的程序exe图标显示异常的问题
- OpenSSL密码库算法笔记——第6.1章 密钥
- mysql数据表删了怎么恢复_mysql数据库数据删除怎么恢复
- java中的类图_JAVA类图
- app端-留存分析-周留存率报表开发
- word方框中打√符号的方法
- 医院管理系统(Java+SSM+MySQL开发的医院科室管理系统)
- Apsara Clouder基础技能认证-阿里巴巴编程规范考试真题
- 全面理解Python迭代器和生成器
- 语言大数据起航,大数据量级加码
- python浮点数多少位_python 浮点数保留几位小数
- arccotx图像在matlab,反三角函数图像与性质是什么?
- python中“_“用法