弹性布局:解锁网页设计的无限可能!

我们在项目中常常会用到弹性布局,接下来我们就来学习一下弹性布局中的属性及其用法

容器属性(应用于flex容器)

1. display

  • display: flex;

  • display: inline-flex;

    相同点:将容器内的子元素水平或者垂直排列,默认是水平·

    不同点:display: flex;将元素作为块级元素展示,display: inline-flex;将元素作为行内元素展示

xml 复制代码
<body>
    <div class="container">
        <div class="item">item1</div>
        <div class="item">item2</div>
        <div class="item">item3</div> 
    </div>
</body>
<style>
    .container {
        display: flex;
        flex-direction: column;
    }

    .item {
        background-color: lightblue;
        padding: 20px;
        margin: 10px;
    }
</style>

效果图:

display: flex;改为display: inline-flex;

2. flex-direction(改变主轴方向)

  • row:项目沿主轴水平排列,起点在左端(默认)。
  • row-reverse:项目沿主轴水平排列,但起点在右端。
  • column:项目沿主轴垂直排列,起点在上沿。
  • column-reverse:项目沿主轴垂直排列,但起点在下沿。

3. flex-wrap(也是上述示例,可以多加几个子元素试试效果,就不一一展示了)

  • nowrap:所有项目都排在一行上。
  • wrap:一行排不下,则项目会换行排列。
  • wrap-reverse:项目换行排列,但第一行在容器的底部。

4. flex-flow

  • flex-directionflex-wrap的简写形式,例如:flex-flow: row wrap;

5. justify-content(效果图就展示一两个,有兴趣可以自行试试)

  • 控制项目在主轴上的对齐方式。
  • flex-start:项目向一行的起始位置靠齐。
  • flex-end:项目向一行的结束位置靠齐。
  • center:项目居中对齐。
  • space-between:项目之间的间隔相等。
  • space-around:项目周围的间隔相等。
  • space-evenly:项目间和边缘间的间隔相等。

6. align-items

  • 控制项目在交叉轴上如何对齐。
  • stretch:拉伸以填满容器(默认值)。
  • flex-start:交叉轴的起点对齐。
  • flex-end:交叉轴的终点对齐。
  • center:交叉轴的中点对齐。

7. align-content

  • 多行/列对齐方式(仅当有多行/列时生效)。
  • stretchflex-startflex-endcenterspace-betweenspace-aroundspace-evenly的作用类似于justify-content,但应用于多行/列。

项目属性(应用于flex项目)

  1. order
    • 控制项目的排列顺序。默认为0,数值越小,排列越靠前。
css 复制代码
<style>
    .container {
        display: flex;
    }

    .item {
        background-color: lightblue;
        padding: 20px;
        margin: 10px;
        &:nth-child(3){
            order: 0;
        }
        &:nth-child(2){
            order: 1;
        }
        &:nth-child(1){
            order: 2;
        }
    }
</style>
  1. flex-grow
    • 定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大。例如:给子元素item加上属性flex-grow:1;
  1. flex-shrink

    • 定义项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。
  2. flex-basis

    • 定义在分配多余空间之前,项目占据的主轴空间(main size)。auto表示项目本来的大小。
  3. flex

    • flex-growflex-shrinkflex-basis的简写,默认值为0 1 auto。建议使用这个简写属性而不是单独写三个分开的属性。
  4. align-self

    • 允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。接受的值与align-items相同。

以上便是css中弹性布局的常见属性及其用法。欢迎大家指正

相关推荐
m0_7482361122 分钟前
Calcite Web 项目常见问题解决方案
开发语言·前端·rust
Watermelo61735 分钟前
详解js柯里化原理及用法,探究柯里化在Redux Selector 的场景模拟、构建复杂的数据流管道、优化深度嵌套函数中的精妙应用
开发语言·前端·javascript·算法·数据挖掘·数据分析·ecmascript
m0_7482489436 分钟前
HTML5系列(11)-- Web 无障碍开发指南
前端·html·html5
m0_748235611 小时前
从零开始学前端之HTML(三)
前端·html
一个处女座的程序猿O(∩_∩)O3 小时前
小型 Vue 项目,该不该用 Pinia 、Vuex呢?
前端·javascript·vue.js
hackeroink6 小时前
【2024版】最新推荐好用的XSS漏洞扫描利用工具_xss扫描工具
前端·xss
迷雾漫步者7 小时前
Flutter组件————FloatingActionButton
前端·flutter·dart
向前看-8 小时前
验证码机制
前端·后端
燃先生._.9 小时前
Day-03 Vue(生命周期、生命周期钩子八个函数、工程化开发和脚手架、组件化开发、根组件、局部注册和全局注册的步骤)
前端·javascript·vue.js