float属性
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了float属性相关的知识,希望对你有一定的参考价值。
-
float本质
- float属性原本的作用就是让文字环绕,要牢记这一点
-
float特性
- 包裹性:一旦某个元素赋予了float属性,那么它就相当于被包裹住了,它里面无论发生什么都不会对这个元素以外的元素有影响了
- 具有包裹性的其他性质
- display:inline-block/table-cell/...
- position:absolute/fixed/sticky
- overflow:hidden/scroll
- 包裹方式
- 收缩
- 坚挺
- 隔绝
- 具有包裹性的其他性质
- 破坏性:比如说两个block元素,在没有任何float附加条件下,它是上下排列的,相当于上面那个元素占据了上面的父容器,但是一旦赋予float属性,这个父容器就不复存在,可以说高度塌陷了,然后下面的元素自然与上面的呃元素并列了。
- 具有破坏性的其他性质
- display:none;
- position:absolute/fixed/sticky
- 具有破坏性的其他性质
- 包裹性:一旦某个元素赋予了float属性,那么它就相当于被包裹住了,它里面无论发生什么都不会对这个元素以外的元素有影响了
-
清除浮动
- 最简单
clear:both;
- BFC/haslayout声明
- float:left/right
- position:absolute/fixed
- overflow:hidden/scroll(IE7+)
- display:inline-block/table-cell(IE8+)
- width/height/zoom:1/..(IE6/IE7)
- BFC/haslayout声明
- 权衡后的策略
.clearfix:after{content:‘‘;display:block;height:0;overflow:hidden;clear:both;} .clearfix{*zoom:1;}
- 更好的方法
//clearfix只能应用在包含浮动子元素的父级元素上 .clearfix:after{content:‘‘;display:table;clear:both;} .clearfix{*zoom:1;}
- 最简单
-
clear与margin
- 用clear清除浮动,外面的东西依旧会对内部造成干扰,所以会发生margin重叠的效果
- 用BFC清除浮动(父元素添加overflow:hidden),父元素不会塌陷,可以被撑开,内部的东西被包裹住了,因此margin不会重叠
-
float滥用
- float效果
- 元素block块状化(砖头化)
- 破坏性造成的紧密排列特性(去空格化)
- float布局的问题
- 容错性差,问题多
- 需要尺寸确定
- IE低版本各种问题
- float效果
-
float与流体布局
- 浮动与两侧皆自适应的流体布局
.object{display:table-cell;*display:inline-block; width:2000px;*width;}
- 浮动与右侧尺寸固定的流体布局
/*改变DOM流体布局*/ .right{float:right;width:56px;} .left{margin-right:76px;} /*不改变DOM流体布局*/ .left{float:left;margin-right:76px;} .right{float:left;width:56px;margin-left:-56px;}
- 浮动与单侧尺寸固定的流体布局
/*不好的布局*/ width:484px,float:right; /*好的布局*/ margin-left:76px;
- 浮动与两侧皆自适应的流体布局
-
float兼容性
- IE7问题
- 含clear的浮动元素包裹不正确的问题
- 浮动元素倒数两个数莫名垂直
- 浮动元素最后一个元素重复
- 浮动元素楼梯排列问题
- 浮动元素与文本不在同一行
- IE7问题
以上是关于float属性的主要内容,如果未能解决你的问题,请参考以下文章
在Tomcat的安装目录下conf目录下的server.xml文件中增加一个xml代码片段,该代码片段中每个属性的含义与用途
如何解决属性错误'float'对象在python中没有属性'split'?