flex布局详解

  1. CSS3弹性盒子
    弹性盒子是CSS3的一种新布局模式。

    CSS3 弹性盒( Flexible Box 或 flexbox),是一种当页面需要适应不同的屏幕 大小以及设备类型时确保元素拥有恰当的行为的布局方式。

    引入弹性盒布局模型的目的是提供一种更加有效的方式来对一个容器中的子元素进行排列、对齐和分配空白空间。

  2. CSS3 弹性盒子内容
    弹性盒子由弹性容器(Flex container)和弹性子元素(Flex item)组成。

    弹性容器通过设置 display 属性的值为 flex 或 inline-flex将其定义为弹性容器。

    弹性容器内包含了一个或多个弹性子元素。

<!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>FLEX</title>
    <style>
        .flex-container {
            display: flex;
            flex-direction: row;
            flex-wrap: wrap;
            width: 1000px;
            height: 600px;
            background-color: lightskyblue;
        }
        .flex-container .flex-item {
            width: 200px;
            height: 200px;
            margin: 10px;
            background-color:lightgreen;
        }
    </style>
</head>
<body>
    <div class="flex-container">
        <div class="flex-item"></div>
        <div class="flex-item"></div>
        <div class="flex-item"></div>
    </div>
</body>
</html>

test1
图片效果为三个方块并列,由此可以得出弹性盒的一个重要特性:默认情况下,子元素自动排成一行并左对齐,表现形式类似float:left。

  1. CSS3 弹性盒子常用属性

    属性分为两个板块:作用到父容器上的和作用到子元素上的。

    作用到父容器上的:

属性值描述
display : flex;特别重要 ,必须书写,将容器转为弹性布局
flex-direction布局的排列方向 (主轴排列方向)
flex-wrap是否进行换行处理
flex-flowflex-direction flex-wrap 复合写法 (是有顺序的)
justify-content属性决定了主轴方向上子项的对齐和分布方式
align-items每一行中的子元素上下对齐方式
align-content侧轴的对齐方式。(最少需要两行才能看出效果,因为他是多行的一个上下对齐方式)

1.flex-direction,布局的排列方向 (主轴排列方向)

属性值描述
row默认值,显示为行。方向为当前文档水平流方向,默认情况下是从左往右
row-reverse显示为行。但方向和row属性值是反的
column显示为列
column-reverse显示为列。但方向和column属性值是反的

在这里插入图片描述

2.换行处理

属性值描述
nowrap默认值,不换行处理
wrap换行处理
wrap-reverse反向换行

在这里插入图片描述
(1) nowrap (默认):不换行。
在这里插入图片描述
(2)wrap:换行,第一行在上方。
在这里插入图片描述
(3)wrap-reverse:换行,第一行在下方。

3.flex-flow 属性
flex-flow属性是flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap。

.flex-container { flex-flow: <flex-direction> <flex-wrap> }

4.justify-content:主轴方向上子项的对齐和分布方式

属性值描述
flex-start默认值,子项起始位置对齐
flex-end子项结束位置对齐
center子项中心位置对齐
space-between子项两端对齐
space-around间距环绕对齐
space-evenly间距等宽对齐

(1) flex-start 子项起始位置对齐
在这里插入图片描述
(2) center,子项中心位置对齐
在这里插入图片描述
(3)flex-end,子项结束位置对齐
在这里插入图片描述
(4)子项两端对齐,表现为两侧没有间距,中间间距平均分配
在这里插入图片描述
(5)space-around : 间距环绕对齐,表现为两侧间距为中间间距的一半
在这里插入图片描述
(6) space-evenly :间距等宽对齐,表现为所有间距等宽
在这里插入图片描述
4.align-items:每一行中的子元素上下对齐方式

属性值描述
stretch默认值,子项被拉伸至适应容器
flex-start子项位于容器开头
center子项位于容器中间
flex-end子项位于容器底部

(1) stretch :默认值,子项被拉伸至适应容器
在这里插入图片描述
(2)flex-start:子项位于容器开头
在这里插入图片描述
(3)center:子项位于容器中间
在这里插入图片描述
(4)flex-end:子项位于容器底部
在这里插入图片描述
5.align-content:侧轴的对齐方式。(最少需要两行才能看出效果,因为他是多行的一个上下对齐方式)

属性值描述
stretch默认值,子项被拉伸至适应容器
flex-start子项起始位置对齐
flex-end子项结束位置对齐
center子项中心位置对齐
space-between子项两端对齐
space-around间距环绕对齐
space-evenly间距等宽对齐

(1)stretch:默认值,子项被拉伸至适应容器
在这里插入图片描述
(2) flex-start :子项起始位置对齐
在这里插入图片描述
(3) center:子项中心位置对齐
在这里插入图片描述
(4) flex-end:子项结束位置对齐
在这里插入图片描述
(5) space-between:子项两端对齐
在这里插入图片描述
(6) space-around:间距环绕对齐
在这里插入图片描述
(7) space-evenly:间距等宽对齐
在这里插入图片描述
作用到子元素上的:

属性值描述
order排序
flex-grow扩展 ( 想看到扩展的效果,必须有空隙 )
flex-shrink收缩 (想看到收缩效果,必须子项大小必须大于容器大小)
flex-basis用于设置或检索弹性盒伸缩基准值
flexflex-grow flex-shrink flex-basis 复合写法
algin-self在弹性子元素上使用。覆盖容器的 align-items 属性

1.order 排序
用整数值来定义排列顺序,数值小的排在前面。可以为负值,默认为0
在这里插入图片描述
2.flex-grow 扩展 ( 想看到扩展的效果,必须有空隙 )
在这里插入图片描述
3.flex-shrink : 收缩 (想看到收缩效果,必须子项大小必须大于容器大小)
在这里插入图片描述
4.flex-basis:用于设置或检索弹性盒伸缩基准值
在这里插入图片描述
5.flex:flex-grow flex-shrink flex-basis 复合写法

flex = 1 的时候,设置了 三个属性
flex-grow=1,flex-shrink=1,flex-basis=0%
 
只设置 flex-grow =1 的时候
flex-grow=1,flex-shrink=1(默认值),flex-basis=auto(默认值)

6.algin-self 在弹性子元素上使用。覆盖容器的 align-items 属性

水平是主轴的时候:默认情况下,当宽高不写的时候,宽度由内容决定,高度由父容器决定。
垂直是主轴的时候:默认情况下,当宽高不写的时候,宽度由父容器决定,高度由内容决定。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值