第三课 | 第二节 | 清浮动的方法
来源:互联网 发布:淘宝店主 信用卡 编辑:程序博客网 时间:2024/05/16 00:52
关于浮动,上一节我们说过了浮动的定义和特性及看了一个实例。大家不禁要问,
元素浮动后为什么要清浮动呢?
要解答这个问题,我们得先说说CSS中的定位机制:普通流,浮动,绝对定位 (其中"position:fixed" 是 "position:absolute" 的一个子类)。
一,普通流:很多人或者文章称之为文档流或者普通文档流,其实标准里根本就没有这个词。如果把文档流直译为英文就是 document flow ,但标准里只有另一个词,叫做 普通流 (normal flow),或者称之为常规流。但似乎大家更习惯文档流的称呼,因为很多中文翻译的书就是这么来的。比如《CSS Mastery》,英文原书中至始至终都只有普通流 normal flow(普通流) 这一词,从来没出现过document flow (文档流)
二,浮动:浮动的框可以左右移动,直至它的外边缘遇到包含框或者另一个浮动框的边缘。浮动框不属于文档中的普通流,当一个元素浮动之后,不会影响到 块级框的布局而只会影响内联框(通常是文本)的排列,文档中的普通流就会表现得和浮动框不存在一样,当浮动框高度超出包含框的时候,也就会出现包含框不会 自动伸高来闭合浮动元素(“高度塌陷”现象)。顾名思义,就是漂浮于普通流之上,像浮云一样,但是只能左右浮动。
正是因为浮动的这种特性,导致本属于普通流中的元素浮动之后,包含框内部由于不存在其他普通流元素了,也就表现出高度为0(高度塌陷)。在实际布局中,往往这并不是我们所希望的,所以需要闭合浮动元素,使其包含框表现出正常的高度。
问题问完后,就要上主题了,清浮动的方法:
1,空标签清浮动;
CSS:
- <style>
- body{margin:0;}
- .parent{width:600px; margin:0 auto;border:10px solid red;}
- .left{float:left; width:100px; height:400px; background:#FF0;}
- .center{float:left; width:300px;}
- .center div{height:200px;}
- .box1{background:#0CC;}
- .box2{background:#F9C;}
- .right{float:right; width:200px;}
- .right div{height:100px;}
- .box3{background:#690;}
- .box4{background:#f90;}
- .box5{background:#7c1;}
- .box6{background:#369;}
- .clear{height:0; clear:both;}
- </style>
html:
- <div class="parent">
- <div class="left"></div>
- <div class="center">
- <div class="box1"></div>
- <div class="box2"></div>
- </div>
- <div class="right">
- <div class="box3"></div>
- <div class="box4"></div>
- <div class="box5"></div>
- <div class="box6"></div>
- </div>
- <div class="clear"></div>
- </div
2,伪类清浮动;
CSS:
- body{margin:0;}
- .parent{margin:0 auto; width:600px;border:10px solid red;}
- .left{float:left; width:100px; height:400px; background:#FF0;}
- .center{float:left; width:300px;}
- .center div{height:200px;}
- .box1{background:#0CC;}
- .box2{background:#F9C;}
- .right{float:right;width:200px;}
- .right div{height:100px;}
- .box3{background:#690;}
- .box4{background:#f90;}
- .box5{background:#7c1;}
- .box6{background:#369;}
- .clear{zoom:1;}/* ie6认识 ff不认识 */
- .clear:after{content:''; display:block; clear:both;}/* ie6不认识,其它的都认识 */
- </style>
html:
- <div class="parent clear">
- <div class="left"></div>
- <div class="center">
- <div class="box1"></div>
- <div class="box2"></div>
- </div>
- <div class="right">
- <div class="box3"></div>
- <div class="box4"></div>
- <div class="box5"></div>
- <div class="box6"></div>
- </div>
- </div>
3,br清浮动;
css:
- <style>
- body{margin:0;}
- .parent{width:600px; margin:0 auto;border:10px solid red;}
- .left{float:left; width:100px; height:400px; background:#FF0;}
- .center{float:left; width:300px;}
- .center div{height:200px;}
- .box1{background:#0CC;}
- .box2{background:#F9C;}
- .right{float:right; width:200px;}
- .right div{height:100px;}
- .box3{background:#690;}
- .box4{background:#f90;}
- .box5{background:#7c1;}
- .box6{background:#369;}
- </style>
html:
- <div class="parent">
- <div class="left"></div>
- <div class="center">
- <div class="box1"></div>
- <div class="box2"></div>
- </div>
- <div class="right">
- <div class="box3"></div>
- <div class="box4"></div>
- <div class="box5"></div>
- <div class="box6"></div>
- </div>
- <br clear="all" />
- </div>
4,overflow:hidden清浮动;
css:
- body{margin:0;}
- .parent{margin:0 auto; width:600px;border:10px solid red; overflow:hidden;}/* 父级必须有宽度 overflow:hidden才好使 */
- .left{float:left; width:100px; height:400px; background:#FF0;}
- .center{float:left; width:300px;}
- .center div{height:200px;}
- .box1{background:#0CC;}
- .box2{background:#F9C;}
- .right{float:right;width:200px;}
- .right div{height:100px;}
- .box3{background:#690;}
- .box4{background:#f90;}
- .box5{background:#7c1;}
- .box6{background:#369;}
- </style>
html:
- <div class="parent">
- <div class="left"></div>
- <div class="center">
- <div class="box1"></div>
- <div class="box2"></div>
- </div>
- <div class="right">
- <div class="box3"></div>
- <div class="box4"></div>
- <div class="box5"></div>
- <div class="box6"></div>
- </div>
- </div>
5,display:inline-block清浮动;
css:
- <style>
- body{margin:0;}
- .parent{width:600px; margin:0 auto;border:10px solid red; display:inline-block;}
- .left{float:left; width:100px; height:400px; background:#FF0;}
- .center{float:left; width:300px;}
- .center div{height:200px;}
- .box1{background:#0CC;}
- .box2{background:#F9C;}
- .right{float:right; width:200px;}
- .right div{height:100px;}
- .box3{background:#690;}
- .box4{background:#f90;}
- .box5{background:#7c1;}
- .box6{background:#369;}
- </style>
html:
- <div class="parent">
- <div class="left"></div>
- <div class="center">
- <div class="box1"></div>
- <div class="box2"></div>
- </div>
- <div class="right">
- <div class="box3"></div>
- <div class="box4"></div>
- <div class="box5"></div>
- <div class="box6"></div>
- </div>
- </div>
- 第三课 | 第二节 | 清浮动的方法
- 清浮动的方法
- 【清浮动的方法】
- CSS清浮动的6种方法
- HTML/CSS 清浮动的方法
- 详谈BFC与清浮动的方法:
- CSS清浮动方法
- css清浮动方法
- 有效清浮动方法
- 浮动特性以及部分清浮动方法
- CSS"清浮动"-相关方法
- 清浮动常见方法总结
- 【CSS】清浮动的10种方法与利弊分析
- 关于清浮动的几种方法及注意事项
- 浮动及清浮动的方式
- css清除浮动float的三种方法总结,为什么清浮动?浮动会有那些影响?
- css清除浮动float的三种方法总结,为什么清浮动?浮动会有那些影响?一起来$('.float')
- css清除浮动float的三种方法总结,为什么清浮动?浮动会有那些影响?一起来$('.float')
- php模拟get提交数据到短信接口
- 淘宝开源MQ——metaq的详细文档
- jquery判断checkbox是否选中
- 夜未央月如水
- 无题
- 第三课 | 第二节 | 清浮动的方法
- 爱与恨
- android 换主题换皮肤(apk包方式)
- Android用代码实现最近开启的应用
- onStop、onDestroy的调用时机
- php环境搭建
- [Unix&Linux] 从零开始学习OpenWrt完美教程
- Android 应用安装过程
- 如何在vs2012和2013中,为项目引入sqlite linq2db,以及C#操作sqlite的基本知识。