flex -warp 设置子元素是否换行
在默认情况下,项目都排在一条线(又称轴线 上 ) flex-warp 属性定义,flex布局中默认是不换行的。
属性值 | 说明 |
---|---|
flex-nowrap | 默认值不换行 |
wrap | 换行 |
flex-nowrap: flex默认子元素是不换行的 如果装不开 就会缩小子元素的大小 | |
flex-warp 换行: | |
如果我想让 一个盒子即水平居中 又垂直居中那该咋办呢??? | |
那就先让主轴 居中然后让侧轴居中 重点是 分清楚谁是主轴 | |
x是主轴的话 | |
Y是主轴的话 | |
源代码如下 |
<!DOCTYPE html>
<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>
div {
display: flex;
width: 800px;
height: 400px;
background-color: pink;
/* flex默认子元素是不换行的 如果装不开 就会缩小子元素的大小 */
/* 主轴的水平居中 */
justify-content: center;
flex-direction: column;
/* 我们需要一个侧轴居中 */
/* align-items: center; */
/* 拉伸,但是子盒子不要设置高度 */
/* align-items: stretch */
align-items: center;
}
div span {
width: 150px;
height: 100px;
background-color: purple;
color: #ffffff;
margin: 10px;
}
</style>
</head>
<body>
<div>
<span>1</span>
<span>2</span>
<span>3</span>
</div>
</body>
</html>
align-conten 设置侧轴上的子元素的排列方式(多行)
设置子项在侧轴上的排列方式并且只能用于子项出现换行的情况(多行),在单行下是没有效果的。
属性值 | 说明 |
---|---|
flex-start | 默认值在侧轴的头部开始排列 |
flex-end | 在侧轴的尾部开始排列 |
center | 在侧轴中间显示 |
space-around | 子项在侧轴平分剩余空间 |
space-between | 子项在侧轴先分布在两头,在平分剩余空间 |
stretch | 设置子项元素高度平分父元素高度 |
<!DOCTYPE html>
<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>
div {
display: flex;
width: 800px;
height: 400px;
background-color: pink;
/* 换行 */
flex-wrap: wrap;
/* 因为有了换行,此时我们侧轴上控制子元素对齐的方式我们用 align-content */
/* align-content: flex-start; */
/* align-content: center; */
/* align-content: space-between;
align-content: space-around; */
}
div span {
width: 150px;
height: 100px;
background-color: purple;
color: #fff;
margin: 10px;
}
</style>
</head>
<body>
<div>
<span>1</span>
<span>2</span>
<span>3</span>
<span>4</span>
<span>5</span>
<span>6</span>
</div>
</body>
</html>
align-content: flex-start;
align-content: space-between;align-content: space-around;
align-content 和align-items 的区别
align-items 适用于单行情况下 只有上对齐 下对齐 居中和拉伸。
align-content适用于换行(多行)的情况下(单行情况下无效) 可以设置上对齐、下对齐、居中、拉伸以及平均分配剩余空间等属性值。
总结就是单行找align-items 多行找align-content。、
flex -flow
flex-flow 属性是 fire-direction和flex-warp属性的复合属性。
div {
display: flex;
width: 600px;
height: 300px;
background-color: pink;
/* flex-direction:column; */
/* 把设置主轴方向和是否换行(环列)简写 */
/* flex-warp:wrap */
flex-flow: column wrap;
}