flex布局小案例——制作骰子


前言

看了这篇还不会制作骰子,欢迎来找我!
制作骰子首先需要学会flex的基础原理


提示:以下是本篇文章正文内容,下面案例可供参考

一、HTML的结构

步骤:

  1. 首先准备6个大盒子分别装点数1~6的圆点;
  2. 每个盒子里面分别使用span来装小圆点;
  3. 点数4和5的制作会比其他的要多一步;点数4大盒子里面需要左右两个盒子来分别装span,点数5大盒子里面需要左中右三个盒子来装span;
  4. 给span设置大小颜色圆角;
  5. 通过flex属性设置每个小圆点的位置;

结构代码如下:

<body>
    <section>
        <div class="box-1">
            <span></span>
        </div>
        <div class="box-2">
            <span></span>
            <span></span>
        </div>
        <div class="box-3">
            <span></span>
            <span></span>
            <span></span>
        </div>
        <div class="box-4">
            <div class="left">
                <span></span>
                <span></span>
            </div>
            <div class="right">
                <span></span>
                <span></span>
            </div>
        </div>
        <div class="box-5">
            <div class="left">
                <span></span>
                <span></span>
            </div>
            <div class="center">
                <span></span>
            </div>
            <div class="right">
                <span></span>
                <span></span>
            </div>
        </div>
        <div class="box-6">
            <span></span>
            <span></span>
            <span></span>
            <span></span>
            <span></span>
            <span></span>
        </div>
    </section>
</body>

二、制作步骤

骰子1

制作步骤图:
在这里插入图片描述

代码如下(示例):

		span {
            /* 设置每个骰子里面的小圆点 */
            width: 30px;
            height: 30px;
            background-color: #000;
            border-radius: 50% 50%;
        }
        
        .box-1 {
            /* 给骰子设置主轴居中,侧轴居中对齐 */
            align-items: center;
            justify-content: center;
        }

骰子2

制作步骤图:
在这里插入图片描述

代码如下(示例):

 	.box-2 {
            /* 设置Y轴为主轴,侧轴居中对齐,主轴平均分配 */
            flex-direction: column;
            align-items: center;
            justify-content: space-around;
        }

骰子3

制作步骤图:

在这里插入图片描述

代码如下(示例):

		.box-3 {
            /* 设置Y轴为主轴,主轴平均分配 */
            flex-direction: column;
            justify-content: space-around;
        }
        
        .box-3 span:nth-of-type(2) {
            /* 第二个圆点侧轴居中对齐 */
            align-self: center;
        }
        
        .box-3 span:nth-of-type(3) {
            /* 第三个圆点侧轴从右往左排列 */
            align-self: flex-end;
        }

骰子4

制作步骤图:
在这里插入图片描述

代码如下(示例):

		/* 设置装圆点的盒子宽高为100% */
		.left,
        .right,
        .center {
            width: 100%;
            height: 100%;
        }
          /* 给4和5设置圆点大小颜色圆角 */
        .box-4 span,
        .box-5 span {
            display: block;
            width: 30px;
            height: 30px;
            background-color: #000;
            border-radius: 50% 50%;
        }
        
        .box-4 .left,
        .box-4 .right {
            /* 设置Y轴为主轴,给父盒子添加flex属性,主轴平均分配空间,侧轴居中对齐 */
            flex-direction: column;
            display: flex;
            justify-content: space-around;
            align-items: center;
        }

骰子5

制作步骤图:
在这里插入图片描述

代码如下(示例):

		.box-5 .left,
        .box-5 .right {
            /* 设置Y轴为主轴,给父盒子添加flex属性,主轴平均分配空间,侧轴居中对齐 */
            flex-direction: column;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        
        .box-5 .center {
            /* 给中间的小圆点设置主轴和侧轴居中对齐 */
            display: flex;
            align-items: center;
            justify-content: center;
        }

骰子6

制作步骤图:
在这里插入图片描述

代码如下(示例):

.box-6 {
            /* 设置Y轴为主轴,强制换行,主轴平均分配,侧轴平均分配 */
            flex-direction: column;
            flex-wrap: wrap;
            justify-content: space-around;
            align-content: space-around;
        }

三、完整代码

效果图:

在这里插入图片描述

代码如下(示例):

    <style>
        body {
            background-color: #bbb;
        }
        
        section {
            width: 700px;
            margin: 100px auto;
        }
        
        section [class^="box"] {
            display: flex;
            float: left;
            width: 100px;
            height: 100px;
            margin: 0 5px;
            background-color: #fff;
            border: 1px solid #ccc;
            border-radius: 20px;
        }
        
        span {
            /* 设置每个骰子里面的小圆点 */
            width: 30px;
            height: 30px;
            background-color: #000;
            border-radius: 50% 50%;
        }
        
        .box-1 {
            /* 给骰子设置主轴居中,侧轴居中对齐 */
            align-items: center;
            justify-content: center;
        }
        
        .box-2 {
            /* 设置Y轴为主轴,侧轴居中对齐,主轴平均分配 */
            flex-direction: column;
            align-items: center;
            justify-content: space-around;
        }
        
        .box-3 {
            /* 设置Y轴为主轴,主轴平均分配 */
            flex-direction: column;
            justify-content: space-around;
        }
        
        .box-3 span:nth-of-type(2) {
            /* 第二个圆点侧轴居中对齐 */
            align-self: center;
        }
        
        .box-3 span:nth-of-type(3) {
            /* 第三个圆点侧轴从右往左排列 */
            align-self: flex-end;
        }
        /* 设置装圆点的盒子宽高为100% */
        
        .left,
        .right,
        .center {
            width: 100%;
            height: 100%;
        }
      
        
        .box-4 span,
        .box-5 span {
            display: block;
            width: 30px;
            height: 30px;
            background-color: #000;
            border-radius: 50% 50%;
        }
        
        .box-4 .left,
        .box-4 .right {
            /* 设置Y轴为主轴,给父盒子添加flex属性,主轴平均分配空间,侧轴居中对齐 */
            flex-direction: column;
            display: flex;
            justify-content: space-around;
            align-items: center;
        }
        
        .box-5 .left,
        .box-5 .right {
            /* 设置Y轴为主轴,给父盒子添加flex属性,主轴平均分配空间,侧轴居中对齐 */
            flex-direction: column;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        
        .box-5 .center {
            /* 给中间的小圆点设置主轴和侧轴居中对齐 */
            display: flex;
            align-items: center;
            justify-content: center;
        }
        
        .box-6 {
            /* 设置Y轴为主轴,强制换行,主轴平均分配,侧轴平均分配 */
            flex-direction: column;
            flex-wrap: wrap;
            justify-content: space-around;
            align-content: space-around;
        }
    </style>
</head>

<body>
    <section>
        <div class="box-1">
            <span></span>
        </div>
        <div class="box-2">
            <span></span>
            <span></span>
        </div>
        <div class="box-3">
            <span></span>
            <span></span>
            <span></span>
        </div>
        <div class="box-4">
            <div class="left">
                <span></span>
                <span></span>
            </div>
            <div class="right">
                <span></span>
                <span></span>
            </div>
        </div>
        <div class="box-5">
            <div class="left">
                <span></span>
                <span></span>
            </div>
            <div class="center">
                <span></span>
            </div>
            <div class="right">
                <span></span>
                <span></span>
            </div>
        </div>
        <div class="box-6">
            <span></span>
            <span></span>
            <span></span>
            <span></span>
            <span></span>
            <span></span>
        </div>
    </section>
</body>

总结

今天你学废了吗?
答应我收藏学起来,别放在收藏夹里面吃灰了,好吗?
博主会不定期更新一些好玩的案例和大家一起学习进步的,如果你想要制作旋转动起来的骰子,请参考这篇博客旋转魔方
在这里插入图片描述

  • 17
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
使用flex布局制作骰子可以通过以下步骤实现: 1. 首先,设置一个容器元素,比如ul标签,作为骰子的外部容器。设置宽度、高度、背景颜色等样式属性,同时使用flex布局设置justify-content为space-around,flex-wrap为wrap,align-items为center,以实现骰子的布局效果。\[3\] 2. 在容器元素内部,使用li标签作为骰子的每个面。设置li元素的宽度、高度、边框、背景颜色、边框圆角等样式属性,同时使用flex布局使其内部元素水平垂直居中。\[3\] 3. 在每个li元素内部,使用span标签作为骰子的点数。设置span元素的宽度、高度、背景颜色、边框圆角等样式属性,以实现点数的样式效果。\[3\] 通过以上步骤,就可以使用flex布局制作一个骰子的效果。\[1\] #### 引用[.reference_title] - *1* [flex布局(骰子布局)](https://blog.csdn.net/weixin_54420874/article/details/123097960)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [【CSS flex布局】用flex写个骰子](https://blog.csdn.net/Hemri2580/article/details/127433171)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

super码力

么么哒,夏天来块儿冰西瓜!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值