浮动
描述
- 是对页面布局的一种表现方式
- 设置浮动的元素会脱离文档流
- 设置浮动的元素会改变后面元素的显示位置
float属性
-
表示设置元素浮动
- left属性值 - 表示设置元素左浮动
- right属性值 - 表示设置元素右浮动
- 设置浮动的元素会脱离文档流,指定元素后面的元素会自动向前,形成重叠的显示效果
<head>
<meta charset="UTF-8">
<title>浮动</title>
<style>
/*
float属性 - 表示设置元素浮动
* left属性值 - 表示设置元素左浮动
* right属性值 - 表示设置元素右浮动
* 设置浮动的元素会脱离文档流,指定元素后面的元素会自动向前,形成重叠的显示效果
*/
div {
width: 200px;
height: 200px;
}
#d1 {
background-color: red;
float: left;
}
#d2 {
background-color: green;
width: 300px;
height: 300px;
}
#d3 {
background-color: blue;
}
</style>
</head>
<body>
<div id="d1"></div>
<div id="d2"></div>
<div id="d3"></div>
</body>
元素类型的浮动
块级元素浮动
- 垂直方向排列改为水平方向排列
- 显示宽度由父级宽度的 100% 变为 0(在没设宽的情况下)
<head>
<meta charset="UTF-8">
<title>元素类型的浮动</title>
<style>
/*
块级元素浮动
* 垂直方向排列改为水平方向排列
* 显示宽度由父级宽度的 100% 变为 0(在没设宽的情况下)
*/
div {
width: 200px;
height: 200px;
/* 设置浮动 */
float: left;
/* 块级元素 */
display: block;
}
#d1 {
background-color: red;
}
#d2 {
background-color: green;
}
#d3 {
background-color: blue;
}
</style>
</head>
<body>
<div id="d1"></div>
<div id="d2"></div>
<div id="d3"></div>
</body>
内联元素浮动
- 允许设置宽度和高度
<head>
<meta charset="UTF-8">
<title>元素类型的浮动</title>
<style>
/*
内联元素浮动
* 允许设置宽度和高度
*/
div {
width: 200px;
height: 200px;
/* 设置浮动 */
float: left;
/* 内联元素 */
display: inline;
}
#d1 {
background-color: red;
}
#d2 {
background-color: green;
}
#d3 {
background-color: blue;
}
</style>
</head>
<body>
<div id="d1"></div>
<div id="d2"></div>
<div id="d3"></div>
</body>
行内块级元素浮动
- 去掉了元素之间的间隙
<head>
<meta charset="UTF-8">
<title>元素类型的浮动</title>
<style>
/*
行内块级元素浮动
* 去掉了元素之间的间隙
*/
div {
width: 200px;
height: 200px;
/* 设置浮动 */
float: left;
/* 行内块级元素 */
display: inline-block;
}
#d1 {
background-color: red;
}
#d2 {
background-color: green;
}
#d3 {
background-color: blue;
}
</style>
</head>
<body>
<div id="d1"></div>
<div id="d2"></div>
<div id="d3"></div>
</body>
父子关系的浮动
- 子级元素的浮动范围,不能超出父级元素的所在区域范围
- 父级元素浮动,子级元素也会跟随父级一同浮动
<head>
<meta charset="UTF-8">
<title>父子关系的浮动</title>
<style>
/*
父子关系的浮动
* 子级元素的浮动范围,不能超出父级元素的所在区域范围
* 父级元素浮动,子级元素也会跟随父级一同浮动
*/
#d1 {
width: 300px;
height: 300px;
background-color: red;
float: right;
}
#d2 {
width: 100px;
height: 100px;
background-color: green;
float: right;
}
</style>
</head>
<body>
<div id="d1">
<div id="d2"></div>
</div>
</body>
兄弟关系的浮动
- 如果下一个兄弟元素浮动,下一个兄弟元素不会超过上一个兄弟元素所占的区域位置
<head>
<meta charset="UTF-8">
<title>兄弟关系的浮动</title>
<style>
/*
兄弟关系的浮动
* 如果下一个兄弟元素浮动,下一个兄弟元素不会超过上一个兄弟元素所占的区域位置
*/
div {
width: 200px;
height: 200px;
}
#d1 {
background-color: red;
}
#d2 {
background-color: green;
float: right;
}
</style>
</head>
<body>
<div id="d1"></div>
<div id="d2"></div>
</body>
高度塌陷
- 父级元素没设高度,子级元素设置浮动 - 父级元素会高度塌陷
- 高度塌陷 - 仅存在父子关系中
解决方法
- 为父级元素设置高度
-
开启BFC环境
- 浮动可以开启 - 脱离文档流
- 将元素类型改为行内块级元素可以开启 - 行内块级元素的本身问题
- overflow属性 属性值为hidden时可以开启 - 解决内容溢出
- 设置绝对定位可以开启 - 脱离文档流
- 注意:开启BFC方法所带来的副作用
<head>
<meta charset="UTF-8">
<title>高度塌陷</title>
<style>
/*
高度塌陷 - 仅存在父子关系中
* 父级元素没设高度,子级元素设置浮动 - 父级元素会高度塌陷
解决方法:
* 为父级元素设置高度
* 开启BFC环境
* 浮动可以开启 - 脱离文档流
* 将元素类型改为行内块级元素可以开启 - 行内块级元素的本身问题
* overflow属性 属性值为hidden时可以开启 - 解决内容溢出
* 设置绝对定位可以开启 - 脱离文档流
* 注意:开启BFC方法所带来的副作用
*/
#d1 {
border: 10px solid black;
/* 父级元素没有设置高度 */
/* 为父级元素设置高度 */
height: 200px;
/* 开启BFC环境 - 解决高度塌陷 */
/* 设置浮动 */
float: left;
/* 改变元素的类型为行内块级元素 */
display: inline-block;
/* 设置overflow属性 */
overflow: hidden;
}
#d2 {
width: 300px;
height: 200px;
background-color: #2196f3;
/* 子级元素设置为浮动 */
float: left;
}
</style>
</head>
<body>
<div id="d1">
<div id="d2"></div>
</div>
</body>
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。