css grid实现九宫格布局

常见的九宫格布局可以使用flex布局实现,但是flex布局有个致命的缺陷,比如3行3列的布局,当第不足3个元素的时候,元素依然是平局平铺的,这样就不满足九宫格的效果,这种情况,使用grid布局可以轻松搞定这个问题

html布局

复制代码
<div class="layout">
    <div class="item">1</div>
    <div class="item">2</div>
    <div class="item">3</div>

    <div class="item">3</div>
    <div class="item">5</div>
    <div class="item">6</div>

    <div class="item">7</div>
    <div class="item">8</div>
</div>

css样式

复制代码
<style>
    .layout{
        display: grid;
        /*fr是山哥单位,如果想一行展示4个元素,那么填上4个fr即可*/
        grid-template-columns: 1fr 1fr 1fr;
        gap: 10px;
        margin-left: 10%;
        width: 80%;
        height: 80vh;
    }

    .item{
        background: chartreuse;
        display: flex;
        /*控制元素上下居中*/
        justify-content: center;
        /*控制元素左右居中*/
        align-items: center;
    }

</style>

效果

相关推荐
午安~婉15 小时前
HTML CSS八股
前端·css·html
有事没事实验室15 小时前
css变量
前端·css
前端付豪15 小时前
Vue 中的 JSX:让组件渲染更灵活的正确方式
前端·javascript·vue.js
在泡泡里15 小时前
前端规范【四】eslint(antfu)、lefthook、commitlint
前端
烛阴15 小时前
Python 几行代码,让你的照片秒变艺术素描画
前端·python
Jolyne_15 小时前
如何实现无感刷新Token
前端
用户40993225021215 小时前
Vue3响应式系统的底层原理与实践要点你真的懂吗?
前端·ai编程·trae
qq_4798754316 小时前
RVO和移动语义
前端·算法
加菲喵16 小时前
深度解析:在vue3中使用自定义Hooks
前端
hxmmm16 小时前
js中生成器和迭代器
前端