首页 > 技术文章 > CSS 实现骰子三点布局和五点布局

ltfxy 2022-06-25 16:26 原文

骰子三点布局

思路是使用flex布局或中,弹性子项中的align-self属性
align-self属性可以覆盖弹性容器中的align-items的值, 让子项设置自己的布局属性

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
    .outer{
        width: 300px;
        height: 300px;
        border: 1px solid lightskyblue;
        margin: auto;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        position: absolute;
    }

    .box {
        display: flex;
        flex-direction: column;
        justify-content: space-between;
    }

    .column{
        display: flex;
        flex-direction: column;
        justify-content: space-between;
    }
    
    .item {
        width: 50px;
        height: 50px;
        background: black;
        border-radius: 50%;
    }

    .item:nth-child(2) {
        align-self: center;
    }
    .item:nth-child(3) {
        align-self: flex-end;
    }
</style>

<body>
    <div class="box outer">
        <div class="item"></div>
        <div class="item"></div>
        <div class="item"></div>
    </div>
</body>

</html>

骰子五点布局

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
    .outer{
        width: 300px;
        height: 300px;
        border: 1px solid lightskyblue;
        margin: auto;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        position: absolute;
    }

    .box {
        display: flex;
        justify-content: space-between;
    }

    .column{
        display: flex;
        flex-direction: column;
        justify-content: space-between;
    }
    
    .item {
        width: 50px;
        height: 50px;
        background: black;
        border-radius: 50%;
    }

    .item {
        align-self: center;
    }
</style>

<body>
    <div class="box outer">
        <div class="column">
            <div class="item"></div>
            <div class="item"></div>
        </div>
        <div class="item"></div>
        <div class="column">
            <div class="item"></div>
            <div class="item"></div>
        </div>
    </div>
</body>

</html>

推荐阅读