<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>flex弹性布局</title>
<style>
/* 加了flex是弹性容器 */
.box{
display: flex;
height: 300px;
/* justify-content: start; 默认情况 */
/* justify-content: flex-end; 从右边开始 */
/* justify-content: center; 盒子居中 */
/* justify-content: space-between; 空白间距均分在弹性盒子之间 */
/* justify-content: space-between; 弹性盒子与容器之间间距相等,父级剩余的尺寸分配间距分配 */
/* justify-content: space-around; 空白间距均分在弹性盒子两侧 */
/* justify-content: space-evenly; 弹性盒子与容器之间间距相等 */
border: 1px solid black;
/* align-items: center; 居中 */
/* align-items: flex-end; */
/* align-items: flex-start; */
}
/* 让第二个div,侧轴居中对齐 */
.box div:nth-child(2){
align-self: center;
}
/* 子级div是弹性盒子:沿着主轴方向排列,默认是水平的 */
.box div{
width: 200px;
height: 100px;
background-color: pink;
}
</style>
</head>
<body>
<!-- 默认情况下,主轴方向的尺寸是靠内容撑开,侧轴默认拉伸 -->
<!-- 认识Flex
flex布局也叫弹性布局,是浏览器提倡的布局模型,非常适合结构化布局,提供了强大的空间分布和对齐能力。
flex模型不会产生浮动布局中脱标现象,布局更简单更灵活
-->
<!-- flex --组成
设置方式:给父元素设置display:flex,子元素可以自动挤压或拉伸
组成部分:
弹性容器
弹性盒子(根据子级div数量宽高自动改变子级div的宽高)
主轴:默认在水平方向
侧轴/交叉轴:默认在垂直方向
-->
<div class="box">
<div>1</div>
<div>2</div>
<div>3</div>
<!-- <div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
<div>9</div> -->
</div>
<!-- 布局
1.创建flex容器:display:flex
2.主轴对齐方式:justify-content
属性值:
flex-start:默认值,弹性盒子从起点开始依次排列
flex-end:弹性盒子从终点开始依次排列
center:弹性盒子沿主轴居中排列
space-between:弹性盒子沿主轴均匀排列,空白间距均分在弹性盒子之间
space-around:弹性盒子沿主轴均匀排列,空白间距均分在弹性盒子两侧
space-evenly:弹性盒子沿主轴均匀排列,弹性盒子与容器之间间距相等
3.侧轴对齐方式:align-items
当前弹性容器内所以弹性盒子的侧轴对齐方式(给弹性容器设置)
某个弹性盒子侧轴对齐方式:align-self
单独控制某个弹性盒子的侧轴对齐方式(给弹性盒子设置)
属性值:(align-items和align-self属性值一样)
stretch:弹性盒子沿着侧轴线被拉伸至铺满容器(弹性盒子没有设置侧轴方向尺寸则默认拉伸)
center:弹性盒子沿着侧轴居中排列
flex-start:弹性盒子从起点开始依次排列
flex-end:弹性盒子从终点开始依次排列
4.修改主轴方向:flex-direction
主轴默认在水平方向,侧轴默认在垂直方向
属性值:
row:水平方向,从左向右(默认)
column:垂直方向从上到下
row-reverse:水平方向,从右向左
column-reverse:垂直方向,从上向下
5.弹性伸缩比:flex
控制弹性盒子的主轴方向的尺寸
属性值:整数数字,表示占用父级剩余尺寸的份数
弹性盒子换行:flex-warp
弹性盒子可以自动挤压或拉伸,默认情况下,所有弹性盒子都在一行显示
属性值:
warp:换行
nowrap:不换行(默认)
行对齐方式:align-content
注意,对单行不生效,要有flex-warp:warp
属性值:
flex-start:默认值,弹性盒子从起点开始依次排列
flex-end:弹性盒子从终点开始依次排列
center:弹性盒子沿主轴居中排列
space-between:弹性盒子沿主轴均匀排列,空白间距均分在弹性盒子之间
space-around:弹性盒子沿主轴均匀排列,空白间距均分在弹性盒子两侧
space-evenly:弹性盒子沿主轴均匀排列,弹性盒子与容器之间间距相等
-->
</body>
</html>