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

10 篇文章 1 订阅

概念

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-reverserow
flex-wrap换行nowrap | wrap | wrap-reversenowrap
flex-flow<flex-direction> <flex-wrap>row nowrap
justify-content主轴对齐方式flex-start | flex-end | center | space-between | space-aroundflex-start
align-items交叉轴对齐flex-start | flex-end | center | baseline | stretchstretch
align-content多根轴线的对齐方式flex-start | flex-end | center | space-between | space-around | stretchstretch
项目的属性作用可选参数默认值
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 | stretchauto

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、单项目

在这里插入图片描述
代码如下

<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、双项目

在这里插入图片描述

<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、多项目

在这里插入图片描述

<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点

在这里插入图片描述

<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)
  • 4
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
弹性盒子布局Flexbox)是一种用于在容器中进行灵活的、可响应的布局的 CSS3 模块。它提供了一种简单而强大的方式来对容器内的元素进行排列、对齐和分布。 Flexbox 的核心思想是将容器分为主轴(main axis)和交叉轴(cross axis)。主轴是元素排列的方向,可以是水平方向(row)或垂直方向(column),而交叉轴则是与主轴垂直的方向。 通过设置容器和子元素的属性,我们可以实现各种灵活的布局效果。以下是一些常用的属性: 1. 容器的属性: - `display: flex`:将容器设置为弹性容器。 - `flex-direction`:指定主轴的方向,可以是 `row`(默认值)、`column`、`row-reverse` 或 `column-reverse`。 - `justify-content`:指定子元素在主轴上的对齐方式,可以是 `flex-start`、`flex-end`、`center`、`space-between`、`space-around` 或 `space-evenly`。 - `align-items`:指定子元素在交叉轴上的对齐方式,可以是 `flex-start`、`flex-end`、`center`、`baseline` 或 `stretch`。 - `flex-wrap`:指定子元素是否换行,可以是 `nowrap`(默认值)、`wrap` 或 `wrap-reverse`。 2. 子元素的属性: - `flex-grow`:指定子元素在剩余空间中的放大比例,默认值为 0,即不放大。 - `flex-shrink`:指定子元素在空间不足时的缩小比例,默认值为 1,即等比例缩小。 - `flex-basis`:指定子元素在主轴上的初始尺寸,默认值为 `auto`。 - `flex`:`flex-grow`, `flex-shrink` 和 `flex-basis` 的缩写。 - `align-self`:覆盖容器的 `align-items` 属性,指定子元素在交叉轴上的对齐方式。 Flexbox 提供了一种简单而强大的布局方式,适用于各种场景,特别是在构建响应式布局时非常有用。希望这些信息对你有帮助!如果还有其他问题,请继续提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值