Flex弹性盒子布局实现骰子6点

简介: Flex弹性盒子布局实现骰子6点

概念

Flex 容器(flex container)

Flex 项目(flex item)

水平的主轴(main axis)垂直的交叉轴(cross axis)

主轴的开始位置(与边框的交叉点)main start,结束位置叫做main end;

交叉轴的开始位置叫做cross start,结束位置叫做cross end。

单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做cross size

容器的属性

作用

可选参数

默认值

flex-direction

主轴的方向

row|row-reverse | column | column-reverse

row

flex-wrap

换行

nowrap | wrap | wrap-reverse

nowrap

flex-flow

<flex-direction> <flex-wrap>

row nowrap

justify-content

主轴对齐方式

flex-start | flex-end | center | space-between | space-around

flex-start

align-items

交叉轴对齐

flex-start | flex-end | center | baseline | stretch

stretch

align-content

多根轴线的对齐方式

flex-start | flex-end | center | space-between | space-around | stretch

stretch


项目的属性

作用

可选参数

默认值

order

排列顺序

<integer>

0

flex-grow

放大比例

<number>

0

flex-shrink

缩小比例

<number>

1

flex-basis

项目占据的主轴空间

<length>

auto

flex

<flex-grow> <flex-shrink> <flex-basis>

0 1 auto

align-self

项目对齐方式

auto | flex-start | flex-end | center | baseline | stretch

auto

1、基础样式

h2{
    text-align: center;
}

.main{
    display: flex;
    flex-wrap: wrap;
    width: 680px;
    justify-content: space-between;
}

.container{
    display: flex;
    width: 320px;
    height: 320px;
    flex-wrap: wrap;
    justify-content: space-between;
    align-content:space-between;
}

.box{
    width: 90px;
    height: 90px;
    background-color: #EEEEEE;
    padding: 5px;
    border-radius: 5px;
    display: flex;
    flex-wrap: wrap;            
}

.row{
    display: flex;
    flex-basis: 100%;
}

.item{
    width: 24px;
    height: 24px;
    background-color: #000000;
    margin: 3px;
    border-radius: 50%;
}
    

/*排列方向*/
.flex-direction-column{
     flex-direction: column;
}

/*水平排列*/
.justify-content-center{
    justify-content: center;
}

.justify-content-flex-end{
    justify-content: flex-end;
}

.justify-content-space-between{
    justify-content: space-between;
}
    
/*垂直排列*/
 .align-items-center{
     align-items: center;
 }

 .align-items-flex-end{
     align-items: flex-end;
 }

 .align-items-space-between{
     align-items: space-between;
 }

/*多轴对齐*/
 .align-content-space-between{
    align-content: space-between;
 }

 /*项目排列*/
 .align-self-center{
    align-self: center;
 }

 .align-self-flex-end{
    align-self: flex-end;
 }

2、单项目

d25.1.png


代码如下

<div class="container">


<div class="box">
<span class="item"></span>
</div>

<div class="box justify-content-center">
<span class="item"></span>
</div>

<div class="box justify-content-flex-end">
<span class="item"></span>
</div>

<div class="box align-items-center">
<span class="item"></span>
</div>

<div class="box justify-content-center align-items-center">
<span class="item"></span>
</div>

<div class="box justify-content-flex-end align-items-center">
<span class="item"></span>
</div>

<div class="box align-items-flex-end">
<span class="item"></span>
</div>

<div class="box justify-content-center align-items-flex-end">
<span class="item"></span>
</div>

<div class="box justify-content-flex-end align-items-flex-end">
<span class="item"></span>
</div>
</div>

3、双项目

d25.2.png

<div class="container">
<div class="box">
<span class="item"></span>
<span class="item"></span>
</div>

<div class="box">
<span class="item"></span>
<span class="item align-self-center"></span>
</div>

<div class="box justify-content-space-between">
<span class="item"></span>
<span class="item align-self-flex-end"></span>
</div>

<div class="box justify-content-space-between">
<span class="item"></span>
<span class="item"></span>
</div>

<div class="box justify-content-space-between align-items-center">
<span class="item"></span>
<span class="item"></span>
</div>
<div class="box justify-content-space-between align-items-flex-end">
<span class="item"></span>
<span class="item"></span>
</div>

<div class="box justify-content-space-between flex-direction-column">
<span class="item"></span>
<span class="item"></span>
</div>

<div class="box justify-content-space-between align-items-center flex-direction-column">
<span class="item"></span>
<span class="item"></span>
</div>

<div class="box justify-content-space-between align-items-flex-end flex-direction-column">
<span class="item"></span>
<span class="item"></span>
</div>

</div>

4、多项目

d25.3.png


<div class="container">
<div class="box">
<span class="item"></span>
<span class="item align-self-center"></span>
<span class="item align-self-flex-end"></span>
</div>

<div class="box justify-content-flex-end align-content-space-between">
<span class="item"></span>
<span class="item"></span>
<span class="item"></span>
<span class="item"></span>
</div>

<div class="box align-content-space-between">
<div class="row justify-content-space-between">
<span class="item"></span>
<span class="item"></span>
</div>

<div class="row justify-content-space-between">
<span class="item"></span>
<span class="item"></span>
</div>
</div>

<div class="box align-content-space-between">
<span class="item"></span>
<span class="item"></span>
<span class="item"></span>
<span class="item"></span>
<span class="item"></span>
<span class="item"></span>
</div>

<div class="box align-content-space-between flex-direction-column">
<span class="item"></span>
<span class="item"></span>
<span class="item"></span>
<span class="item"></span>
<span class="item"></span>
<span class="item"></span>
</div>

<div class="box">
<div class="row">
<span class="item"></span>
<span class="item"></span>
<span class="item"></span>
</div>

<div class="row justify-content-center">
<span class="item"></span>
</div>

<div class="row justify-content-space-between">
<span class="item"></span>
<span class="item"></span>
</div>
</div>

<div class="box">
<span class="item"></span>
<span class="item"></span>
<span class="item"></span>
<span class="item"></span>
<span class="item"></span>
<span class="item"></span>
<span class="item"></span>
<span class="item"></span>
<span class="item"></span>
</div>

</div>

5、骰子6点

d25.4.png


<div class="container">
<div class="box justify-content-center align-items-center">
<span class="item"></span>
</div>

<div class="box justify-content-space-between">
<span class="item"></span>
<span class="item align-self-flex-end"></span>
</div>

<div class="box">
<span class="item"></span>
<span class="item align-self-center"></span>
<span class="item align-self-flex-end"></span>
</div>

<div class="box align-content-space-between">
<div class="row justify-content-space-between">
<span class="item"></span>
<span class="item"></span>
</div>

<div class="row justify-content-space-between">
<span class="item"></span>
<span class="item"></span>
</div>
</div>

<div class="box">
<div class="row justify-content-space-between">
<span class="item"></span>
<span class="item"></span>
</div>

<div class="row justify-content-center">
<span class="item"></span>
</div>

<div class="row justify-content-space-between">
<span class="item"></span>
<span class="item"></span>
</div>
</div>

<div class="box align-content-space-between flex-direction-column">
<span class="item"></span>
<span class="item"></span>
<span class="item"></span>
<span class="item"></span>
<span class="item"></span>
<span class="item"></span>
</div>
</div>

完成代码:

https://github.com/mouday/LearningNote/blob/master/html/flex-demo.html

其他

防止挤压

flex-shrink: 0

参考

  1. Flex 布局教程:语法篇
  2. Flex 布局教程:实例篇
  3. 30分钟彻底弄懂flex布局
  4. CSS3 弹性盒子(Flex Box)
            </div>
目录
相关文章
|
12天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1275 5
|
2天前
|
存储 关系型数据库 分布式数据库
PostgreSQL 18 发布,快来 PolarDB 尝鲜!
PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!
|
11天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1291 87
|
12天前
|
云栖大会
阿里云云栖大会2025年9月24日开启,免费申请大会门票,速度领取~
2025云栖大会将于9月24-26日举行,官网免费预约畅享票,审核后短信通知,持证件入场
1826 13