css如何实现n宫格布局

css如何实现n宫格布局

设计思路(无关你是scss还是less)

1、为了方便内部元素水平/垂直居中, 整体我们用flex布局.

2、使用正方形占位, 因为用了padding-top:100%, 所以我们就需要再单独用一个div来装内容, 我给他起名”item__content”.

3、为了让内容的容器div充满方块, 我们给他设置样式:position:absolute;top:0;left:0;right:0;bottom:0;;

(推荐教程:CSS入门教程)

立即学习“前端免费学习笔记(深入)”;

HTML代码

    
            
        内容...      
  

登录后复制

CSS代码

为了不冗余, 我把公共的部分抽离的出来起名”.a-grid”;

mixin支持4个参数, 分别是$row(行数), $column(列数), $hasBorder(是否有边框), $isSquare(是否保证每个块是正方形).

mixin内部通过计算并结合:nth-child实现”整体无外边框”的效果

.a-grid {    display: flex;    flex-wrap: wrap;    width: 100%;     .a-grid__item {        text-align:center;        position:relative;        >.item__content {            display:flex            flex-flow: column;            align-items: center;            justify-content: center;        }    }} @mixin grid($row:3, $column:3, $hasBorder:false, $isSquare:true) {    @extend .a-grid;     .a-grid__item {         flex-basis: 100%/$column;         @if($isSquare) {            padding-bottom: 100%/$column;            height: 0;        }         >.item__content {             @if($isSquare) {                position:absolute;                top:0;left:0;right:0;bottom:0;            }        }    }     @for $index from 1 to (($row - 1) * $column + 1) {        .a-grid__item:nth-child(#{$index}) {            @if($hasBorder) {                border-bottom: 1px solid #eee;            }        }    }     @for $index from 1 to $column {        .a-grid__item:nth-child(#{$column}n + #{$index}) {            @if($hasBorder) {                border-right: 1px solid #eee;            }        }    }}

登录后复制

使用

// 生成一个 3行3列, 正方形格子的宫格.a-grid-3-3 {    @include grid(3, 3, true);} // 生成一个 2行5列, 无边框宫格, 每个格子由内容决定高度.a-grid-2-5 {    @include grid(2, 5, false, false);}

登录后复制

提醒大家: 如要做n x m的布局, 用@include grid(n, m)后千万别忘了在html中添加 n x m个对应的dom结构。

相关视频教程推荐:CSS入门教程

以上就是css如何实现n宫格布局的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2886546.html

(0)
上一篇 2025年3月10日 20:52:20
下一篇 2025年3月3日 18:57:36

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • css如何实现图片堆叠效果

    1、初始index.html 为了建立第一张照片,也就是最上面的那张。我们只需要添加一个div,里面包含照片的img。就这么多,剩下的效果都是通过CSS来实现的。确保div的class为stackone。 nbsp;html>    …

    2025年3月10日
    200
  • css如何实现表单验证功能

    原理 表单元素中,有一个pattern属性,可以自定义正则表达式(如手机号、邮箱、身份证..);valid伪类,可以匹配通过pattern验证的元素;invalid伪类则相反,可以匹配未通过pattern验证的元素。 (推荐教程:CSS入门…

    2025年3月10日
    200
  • css实现背景图满屏效果

    想让整个界面有一个背景图片,自然想到的是在body上加background,代码如下: body {     width:100%;     height: 100%;    /* 加载背景图 */    background: url(“…

    2025年3月10日
    200
  • css中position属性有哪些用法

    position属性 position属性指定用于元素的定位方法的类型(静态,相对,固定,绝对或粘性)。 有五种不同的值: •static•relative•fixed•absolute•sticky 然后使用top,bottom,left…

    2025年3月10日
    200
  • css如何修改默认滚动条样式

    前言: 很多项目都需要改变滚动条的默认样式,并不想单独下载和引入插件。 修改方法:(推荐教程:CSS入门教程)             &::-webkit-scrollbar {              // 滚动条的背景   …

    2025年3月10日
    200
  • css中zoom属性有什么作用

    css zoom属性 zoom:设置或检索对象的缩放比例,触发IE浏览器的haslayout属性,解决浮动,margin重叠等一些问题。 语法: zoom:normal (推荐教程:CSS教程) 立即学习“前端免费学习笔记(深入)”; 参数…

    2025年3月10日
    200
  • css如何实现开关效果

    首先是构思: 我们使用标签来实现这个效果。 checkbox的选中、未选中的特性,刚好对应开关的打开、关闭 on:打开 off:关闭     未选中,则关闭开关    选中,则打开开关 登录后复制 效果: 立即学习“前端免费学习笔记(深入)…

    2025年3月10日 编程技术
    200
  • css如何实现一个自适应容器

    目标: 实现一个宽度自适应,高度为宽度一半的容器。 一、思考如何实现 这个问题类似于:我们在移动端页面,上面有一张宽度 100% 的图片,如果我们没设置高度,则图片会根据原有尺寸,等比缩放。 我们可以借助这个想法,根据元素高度,来为元素设置…

    2025年3月10日
    200
  • 详解css行内样式、内嵌样式与外部引用样式的使用方法

    三中的使用方法的简单实例如下: 行内样式: nbsp;html>  css行内样式>  登录后复制 (推荐教程:CSS教程) 内嵌样式:   css内嵌样式#div{width:100px;height:100px;backgr…

    2025年3月10日
    200
  • css中有哪些方法可以实现垂直居中

    css实现垂直居中的方法如下: 1、利用line-height实现居中,这种方法适合纯文字类的; .parents { height: 400px; line-height: 400px; width: 400px; border: 1px…

    2025年3月10日 编程技术
    200

发表回复

登录后才能评论