1.浮动属性的使用:控制元素在浏览器中的位置(可以实现横向排列的效果)
属性:float 使..漂浮/使...浮动
属性值:left right none(默认值 表示不浮动)
- 浮动属性只能控制元素在水平方向上移动
- 浮动属性会使当前的元素脱离文档流(网页布局) 初始位置不存在 后面的元素就会补上 初始的网页布局就会被破坏
2.浮动属性的停止条件
设置浮动属性的元素不会跑出当前的父级盒子 碰到父级元素的边框就会停止浮动
碰到前面一个含有浮动属性的元素也会停止浮动
当子级元素的宽度大于父级元素的宽度时候 最后一个浮动元素会慢慢的往下移动直至找到足够的空间
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
.box{
width: 500px;
height: 500px;
background-color: pink;
}
.box1{
width: 100px;
height: 100px;
background-color: green;
float: left;/* 元素设置向左浮动目前是没有效果的 */
/* float: right; */
}
.box2{
width: 200px;
height: 50px;
background-color: blue;
float: left;
}
.box3{
width: 450px;
height: 100px;
background-color: yellowgreen;
float: left;
}
</style>
</head>
<body>
<div class="box">
<div class="box1"></div>
<div class="box2"></div>
<div class="box3"></div>
</div>
</body>
</html>
效果图:
3.浮动的特点
1.元素一旦加了浮动,就会立即漂浮起来,不占据位置(脱离文档流),后面元素会向前补齐。
2.如果同时给相邻的多个元素都添加了浮动
如果加的是左浮动:就会实现从左到右依次排列的效果
如果加的是右浮动:就会实现从右到左依次排列的效果
如果一行放不下会自动换行。
3.浮动的元素是无法覆盖文字和图片的
4.如果上一行有一个元素高比较大,再换到第二行的时候会出现被卡住的现象
5.div\p\h等标签宽度默认和父元素是一致的,如果一旦加了浮动,他们的宽是由内容去决定
6.比如span、i、em等这种横向排列的标签宽度默认是由内容决定的,我们无法设置宽度和高度(但是一旦加了浮动之后,就可以设置宽度和高度了。)
4.清除浮动
清除浮动:清除的是上一个浮动的元素带来的'影响'
取值:
①clear:left;清除左边浮动带来的影响
②clear:right清除右边浮动带来的影响
③clear:both;清除2边浮动带来的影响(推荐)
注意:谁受到影响了就写给谁。