概念
float是css样式中的定位属性,用于设置标签对象(如:<div>标签盒子、<p>标签、<li>标签等html标签)的浮动布局,浮动也就是我们所说标签对象浮动居左靠左(float:left)和浮动居右靠右(float:right)。
浮动的框可以向左或向右移动,直到它的外边缘碰到父级盒子(父容器)或另一个浮动框(子元素)的边框为止。
只要设置了浮动,就将盒子脱离了文本流。由于浮动框不在文本流中,所以文本流中的其它元素,表现出就像浮动框不存在一样,自动上移,占有浮动框的位置
应用
浮动属性 float
作用: 该属性的值指出了对象是否及如何浮动。
语法: float :none| left|right
示例:
/*左浮动和右浮动*/
div { float:left; }
div { float:right; }
注:
只要设置了浮动,盒子将脱离普通文本流,下方的内容会自动上移。解决的办法是:使用clear属性清除浮动带来的效果。
清除浮动
作用: 清除浮动造成的影响。
语法: clear :none| left|right| both
示例:
div { clear:left; } /* 清除左浮动 */
div { clear:both; } /* 清除左右浮动 */
超出 overflow
作用: 检索或设置当对象的内容超过其指定高度及宽度时如何管理内容。
语法: overflow :visible| auto| hidden| scroll
示例:
div { overflow: hidden; } /* 超出部分隐藏 */
显示与隐藏 display
作用: 设置或检索对象是否及如何显示。
语法: display : block| none|inline
示例:
a { display: block; } /* 以块的方式显示A标签 */
div { display: none; } /* 不显示DIV标签 */
div { display: inline; } /* 以行内元素的方式显示DIV标签 */
通常用于制作滑动门等多种网页特效。
浮动的实例
未浮动的效果
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8"/>
<title>float属性</title>
<style type="text/css">
html,body{background:#ff9;}
div{margin:10px;border:1px dashed #333;background:#90baff;padding:12px;}
p{border:1px dashed #333;background:#ff90ba;}
</style>
</head>
<body>
<div class="box1">Box-1</div>
<div class="box2">Box-2</div>
<div class="box3">Box-3</div>
<p>这里是浮动的外围文字,这里是浮动的外围文字,这里是浮动的外围文字,这里是浮动的外围文字,这里是浮动的外围文字,这里是浮动的外围文字,这里是浮动的外围文字,这里是浮动的外围文字</p>
</body>
</html>
设置第1个div左浮动时的效果
设置2个div左浮动时的效果
设置3个div左浮动时的效果
第3个DIV改变浮动方向后的效果
div被挤到下一行时的效果
交换div位置时的效果
增加div内容时浮动的效果
div挤倒下一行被卡住时的效果
设置浮动后文字环绕的效果
清除浮动对左侧影响后的效果
清除浮动两侧影响后的效果
包含浮动div的容器将不会适应高度
希望实现的效果
技巧:可以使用两种方法实现目标效果:
- 添加一个空的DIV 设置成清除浮动。
- 在大的DIV上使用 overflow属性 overflow:hidden 。
清除浮动的3种方式
- Clear:both
- overflow:hidden
- :after伪元素实现元素末尾添加一个看不见的块元素(Block)