css grid布局的反向填充,从右到左填充

本文介绍了如何使用CSS Grid布局实现从右到左的反向填充,以解决在显示多个按钮时的对齐问题。在Flexbox中可以通过`flex-direction`属性轻松实现,但在Grid中需借助`direction: rtl`属性来达到类似效果。内容详细展示了相关CSS代码及最终实现的布局样式。

问题:需要实现的效果,如下图:

说明:总共有7种不同操作的按钮,最多出现三个。有三个按钮的时候两端对齐,两个按钮的时候如图所示,一个按钮的时候右对齐。如果使用flex弹性盒子,就需要指定元素(按钮)一个宽度33.3%,“flex:1”不行。用grid网格布局实现的话会很简单,因为它可以直接将元素分成最多显示3列,超出的自动换行,不过最后实现的只能是从左到右的填充方式。

grid网格布局本身是没有反向填充的css属性,没有像弹性盒子flex的flex-direction属性,

比如:

flex-direction:row-reverse(水平排列相反的顺序)、row-reverse(垂直排列相反的顺序)。

我们可以利用css的‘ direction’属性实现这个效果。不过垂直排列的反向依然实现不了。

代码:

.grid-btn{
        display: grid;
        grid-template-columns:1fr 1fr 1fr;
        grid-auto-flow:row;
        direction: rtl;    //反向填充
}

实现效果:

全部代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .grid{
            display: grid;
            grid-template-columns:1fr 1fr 1fr;
            grid-auto-flow:row;
            direction:rtl;
            width:300px;
            height:300px;
        }
        .a{
            direction:ltr;
            background: rgb(253, 80, 216);
            width:100px;
            height:100px;
            font-size: 25px;
            color:white;
            display: flex;
            align-items: center;
            justify-content: center;
        }
    </style>
</head>
<body>
    <div class="grid">
        <div class="a">1</div>
        <div class="a">2</div>
        <div class="a">3</div>
        <div class="a">4</div>
        <div class="a">5</div>
        <div class="a">6</div>
        <div class="a">7</div>
        <div class="a">8</div>
        <div class="a">9</div>
    </div>
</body>
</html>

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

草字

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值