web基础学习(十三)CSS3弹性盒模型布局

本文详细介绍CSS3弹性盒(Flexbox)布局的基本概念及应用。包括弹性容器的6个属性:flex-direction、flex-wrap、flex-flow、justify-content、align-items、align-content;以及弹性子元素的6个属性:order、flex-grow、flex-shrink、flex-basis、flex、align-self。通过实例演示了如何使用这些属性实现灵活的响应式布局。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

一、弹性容器(flex container也就是父级元素)

在这里插入图片描述

  • 父级元素共有6个属性下面详细对这几个属性分析布局讲解
  1. flex-direction

    设置主轴方向,确定弹性子元素排列方式
    flex-direction:row | row-reverse | column | column-reverse
    在这里插入图片描述
    在这里插入图片描述

  2. flex-wrap

    设置弹性子元素超出弹性容器范围时是否换行
    flex-wrap:nowrap | wrap | wrap-reverse
    在这里插入图片描述
    在这里插入图片描述

  3. flex-flow

    复合属性(flex-direction和flex-wrap),设置弹性子元素排列方式
    flex-flow:[ flex-direction ] || [ flex-wrap ]

  4. justify-content

    设置弹性子元素主轴上的对齐方式
    justify-content:flex-start | flex-end | center | space-between | space-around
    在这里插入图片描述
    在这里插入图片描述

  5. align-items

    设置弹性子元素侧轴上的对齐方式
    align-items:flex-start | flex-end | center | baseline | stretch
    在这里插入图片描述在这里插入图片描述

  6. align-content

    侧轴有空白有多行时,设置弹性子元素侧轴上的对齐方式
    align-content:flex-start | flex-end | center | space-between | space-around | stretch
    在这里插入图片描述在这里插入图片描述

二、弹性子元素(flex item)

在这里插入图片描述

  • 子元素也有6个属性下面是布局详解
  1. order

    设置弹性子元素的顺序,数值小的排在前面,可以为负值默认值为0
    order:<integer>
    在这里插入图片描述

  2. flex-grow

    设置弹性子元素的扩展比率,不允许为负值,默认值为0,根据弹性盒子元素所设置的扩展因子作为比率来分配剩余空间
    flex-grow:<number>
    在这里插入图片描述

  3. flex-shrink
    >设置弹性子元素的收缩比率,不允许为负值,默认值为1,根据弹性盒子元素所设置的扩展因子作为比率来收缩空间
    >flex-shrink:<number>
    在这里插入图片描述在这里插入图片描述
  4. flex-basis

    设置弹性子元素的伸缩基准值(参照值),不允许为负值。 默认值为auto,无特定宽度(高度)
    flex-basis:<length> | <percentage> | auto

  5. flex

    复合属性,设置弹性子元素的空间如何分配
    flex:none | [ flex-grow ] || [ flex-shrink ] || [ flex-basis ]

  6. align-self

    设置弹性子元素的在侧轴上的对齐方式,与align-item的相同。 设置某个弹性子元素的独立对齐方式
    align-self:auto | flex-start | flex-end | center | baseline | stretch在这里插入图片描述

  • 弹性盒模型重在理解,自己练习后很容易理解里面的含义。
  • 拷贝demo测试练习吧:
<!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;
            /*复合方式写主轴水平方向和换行*/
            flex-flow: row wrap;
            /*设置主轴居中对齐*/
            justify-content: center;
            /*设置子元素侧轴居中对齐*/
            align-items: center;
            width: 1200px;
            height: 640px;
            background-color: lightsteelblue;
        }

        .flex-container .flex-item {
            width: 320px;
            height: 240px;
            margin: 10px;
            font-size: 50px;
            font-weight: bolder;
            line-height: 240px;
            color: red;
            text-align: center;
            background-color: lightsalmon;
        }
        /*使用order设置每个子元素的顺序*/
        .flex-container .one{
            order: 1;
            /*设置扩展比率2 */
            flex-grow:2;
        }
        .flex-container .two{
            order: 3;
            /*设置扩展比率1 */
            flex-grow:1;
        }
        .flex-container .three{
            order: 4;
            /*设置扩展比率3 */
            flex-grow:3;
        }
        .flex-container .four{
            order: 2;
            
        }
        .flex-container .five{
            order: 5;
        }
        .flex-container .six{
            order: 0;
        }
    </style>
</head>
<body>
<div class="flex-container">
    <div class="flex-item one">1</div>
    <div class="flex-item two">2</div>
    <div class="flex-item three">3</div>
    <div class="flex-item four">4</div>
    <div class="flex-item five">5</div>
    <div class="flex-item six">6</div>
</div>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值