目录
标准流
浮动
清除浮动
清除浮动方法
方法一:额外标签法
方法二:单伪元素法(直接复制粘贴)
方法三:双伪元素法(推荐) => 可以直接复制粘贴放到清除全局样式里
方法四:overflow => 设置该属性后浏览器会检查父级范围,自然高度也会被检测到
浮动总结:
Flex布局
Flex-组成
主轴对齐方式
Flex-组成
侧轴对齐方式
修改主轴方向
其他
标准流
标准流也叫文档流,指的是标签在页面中默认的 排布规则 ,例如:块元素独占一行,行内元素可以一行显示多个。 标准流浮动
- 作用: 让块元素水平排列
- 属性名: float
- 属性值: left:左对齐 right:右对齐
- 特点: 1.浮动后的盒子顶对齐 2.浮动后的盒子具有行内块特点 3.浮动后的盒子脱标,不占用标准流的位置
float布局示例
清除浮动
场景:浮动元素会 脱标 ,如果 父级没有高度 ,子级 无法撑开父级高度 (可能导致页面布局错乱) 解决方法: 清除浮动 (清除浮动带来的影响)代码示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>浮动-清除浮动</title>
<style>
.father {
margin: 10px auto;
width: 1200px;
/* height: 300px; */
background-color: pink;
}
.left {
float: left;
width: 200px;
height: 300px;
background-color: skyblue;
}
.right {
float: right;
width: 950px;
height: 300px;
background-color: orange;
}
.bottom {
height: 100px;
background-color: brown;
}
</style>
</head>
<body>
<div class="father">
<div class="left"></div>
<div class="right"></div>
</div>
<div class="bottom"></div>
</body>
</html>
效果示例
清除浮动方法
方法一:额外标签法
- 在父元素内容的最后添加一个块级元素,设置 CSS 属性 clear: both
方法二:单伪元素法(直接复制粘贴)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>清除浮动-单伪元素法</title>
<style>
.father {
margin: 10px auto;
width: 1200px;
/* height: 300px; */
background-color: pink;
}
.left {
float: left;
width: 200px;
height: 300px;
background-color: skyblue;
}
.right {
float: right;
width: 950px;
height: 300px;
background-color: orange;
}
.bottom {
height: 100px;
background-color: brown;
}
/* 单伪元素法 */
.clearfix::after {
content: "";
display: block;
clear: both;
}
</style>
</head>
<body>
<div class="father clearfix">
<div class="left"></div>
<div class="right"></div>
</div>
<div class="bottom"></div>
</body>
</html>
方法三:双伪元素法(推荐) => 可以直接复制粘贴放到清除全局样式里
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>清除浮动-双伪元素法</title>
<style>
.father {
margin: 10px auto;
width: 1200px;
/* height: 300px; */
background-color: pink;
}
.left {
float: left;
width: 200px;
height: 300px;
background-color: skyblue;
}
.right {
float: right;
width: 950px;
height: 300px;
background-color: orange;
}
.bottom {
height: 100px;
background-color: brown;
}
/* before 解决外边距塌陷问题 */
/* 双伪元素法 */
.clearfix::before,
.clearfix::after {
content: "";
display: table;
}
/* after 清除浮动 */
.clearfix::after {
clear: both;
}
</style>
</head>
<body>
<div class="father clearfix">
<div class="left"></div>
<div class="right"></div>
</div>
<div class="bottom"></div>
</body>
</html>
方法四:overflow => 设置该属性后浏览器会检查父级范围,自然高度也会被检测到
- 父元素添加 CSS 属性 overflow: hidden
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>清除浮动-overflow</title>
<style>
.father {
margin: 10px auto;
width: 1200px;
/* height: 300px; */
background-color: pink;
overflow: hidden;
}
.left {
float: left;
width: 200px;
height: 300px;
background-color: skyblue;
}
.right {
float: right;
width: 950px;
height: 300px;
background-color: orange;
}
.bottom {
height: 100px;
background-color: brown;
}
</style>
</head>
<body>
<div class="father">
<div class="left"></div>
<div class="right"></div>
</div>
<div class="bottom"></div>
</body>
</html>
浮动总结:
- 浮动属性 float,left 表示左浮动,right 表示右浮动
- 特点 1. 浮动后的盒子顶对齐 2. 浮动后的盒子具备行内块特点 3. 父级宽度不够,浮动的子级会换行 4. 浮动后的盒子脱标
- 清除浮动:子级浮动,父级没有高度,子级无法撑开父级高度,影响布局效果 1. 双伪元素法
- 拓展:浮动本质作用是实现图文混排效果
Flex布局
Flex 布局也叫弹性布局,是 浏览器提倡 的布局模型,非常适合结构化布局, 提供了强大的 空间分布 和 对齐 能力。 Flex 模型 不会 产生浮动布局中 脱标 现象,布局网页 更简单、更灵活 。Flex-组成
设置方式:给 父 元素设置 display: flex , 子 元素可以 自动挤压或拉伸 组成部分: • 弹性容器 • 弹性盒子 • 主轴:默认在 水平 方向 • 侧轴 / 交叉轴:默认在 垂直 方向主轴对齐方式
属性名:justify-content
Flex-组成
侧轴对齐方式
属性名 • align-items :当前弹性容器内 所有 弹性盒子的侧轴对齐方式(给弹性容器设置) • align-self :单独控制 某个 弹性盒子的侧轴对齐方式(给弹性盒子设置)
修改主轴方向
主轴 默认在水平方向 ,侧轴默认在垂直方向 属性名: flex-direction其他
弹性伸缩比
作用:控制弹性盒子的 主轴 方向的 尺寸 。 属性名: flex 属性值: 整数数字 ,表示占用父级 剩余 尺寸的 份数 。 弹性盒子换行 弹性盒子可以 自动挤压或拉伸 ,默认情况下,所有弹性盒子都 在一行显示 。 属性名: flex-wrap 属性值 • wrap :换行 • nowrap:不换行(默认) 行对齐方式 属性名: align-content