iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >使用css怎么实现一个n宫格布局
  • 298
分享到

使用css怎么实现一个n宫格布局

2023-06-08 05:06:33 298人浏览 泡泡鱼
摘要

使用CSS怎么实现一个n宫格布局?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。设计目标在scss环境下, 通过mixin实现n宫格, 并且可以支持"有无边框"

使用CSS怎么实现一个n宫格布局?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

设计目标

在scss环境下, 通过mixin实现n宫格, 并且可以支持"有无边框"和"每个格是否正方形":

@include grid(3, 3, true); // 3 x 3, 有边框, 且每个格为正方形@include grid(2, 5, false, false); // 2 x 5, 无边框

最终效果

使用css怎么实现一个n宫格布局

"padding百分比"小技巧

先解释一个小技巧, 如何实现正方形, 保证看一遍就会, 结论就是:
padding的值如果是百分比, 那么他是相对"父"元素宽度计算的, 也就是说如果"父"元素宽度是100px, "子"元素设置padding-top:100%,"子"元素的padding-top实际上等于100px, 这样就实现了一个正方形(100 x 100). 为了减少干扰, 我们把"子"元素高度设置为0;

使用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;;

因此我们的html是这样的:

<!-- a-grid是一个flex容器, 方便他的内容做"水平/垂直居中" --><div class="a-grid">  <!-- a-grid__item用来占位实现正方形 -->  <div class="a-grid__item">      <!-- item__content才是真正装内容的容器 -->      <div class="item__content">        内容...      </div>  </div></div>

代码(scss)

这里做了3件事:

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

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

  3. 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);}

看完上述内容,你们掌握使用css怎么实现一个n宫格布局的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网精选频道,感谢各位的阅读!

--结束END--

本文标题: 使用css怎么实现一个n宫格布局

本文链接: https://www.lsjlt.com/news/252122.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 使用css怎么实现一个n宫格布局
    使用css怎么实现一个n宫格布局?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。设计目标在scss环境下, 通过mixin实现n宫格, 并且可以支持"有无边框"...
    99+
    2023-06-08
  • 如何使用css实现N宫格布局
    这篇文章主要为大家展示了“如何使用css实现N宫格布局”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用css实现N宫格布局”这篇文章吧。   常见应用场...
    99+
    2024-04-02
  • 如何利用CSS实现九宫格布局
    今天就跟大家聊聊有关如何利用CSS实现九宫格布局,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。最近几天刷面经常看见一道题,“九宫格布局”。自己尝试用...
    99+
    2024-04-02
  • CSS怎样实现动态图片的九宫格布局
    这篇文章给大家分享的是有关CSS怎样实现动态图片的九宫格布局的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前提条件: content="width=750"<meta name...
    99+
    2023-06-08
  • 使用python怎么实现一个九宫格图片
    这篇文章给大家介绍使用python怎么实现一个九宫格图片,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。python的数据类型有哪些python的数据类型:1. 数字类型,包括int(整型)、long(长整型)和floa...
    99+
    2023-06-14
  • 使用CSS怎么实现一个响应式布局系统
    这篇文章将为大家详细讲解有关使用CSS怎么实现一个响应式布局系统,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。什么是csscss是一种用来表现HTML或XML等文件样式的计算机语言,主要是用...
    99+
    2023-06-08
  • 如何使用HTML和CSS实现一个简洁的表格布局
    HTML和CSS是前端开发中最常用的两种语言,可以用来创建和美化网页。表格是网页中常见的元素之一,用来展示数据。如何使用HTML和CSS实现一个简洁的表格布局呢?下面将介绍具体的步骤,并提供代码示例。步骤一:创建HTML结构首先,我们需要创...
    99+
    2023-10-21
    CSS html 表格布局
  • css中怎么实现一个三栏布局
    css中怎么实现一个三栏布局,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。三栏布局,顾名思义就是两边固定,中间自适应。三栏布局在实际的开发...
    99+
    2024-04-02
  • 如何使用css实现网格布局
    这篇“如何使用css实现网格布局”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“如何使用css实现网格布局”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,希望大家通...
    99+
    2024-04-02
  • 使用CSS3怎么实现一个瀑布流布局
    使用CSS3怎么实现一个瀑布流布局?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。掌握点:column-count 把div中的文本分为多少列column-width 规定列宽c...
    99+
    2023-06-08
  • 怎么用CSS实现九宫格图
    本篇内容介绍了“怎么用CSS实现九宫格图”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!下图是手Q吃喝玩乐&...
    99+
    2024-04-02
  • 使用BootStrap怎么实现栅格布局
    这篇文章将为大家详细讲解有关使用BootStrap怎么实现栅格布局,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1. 基本点box-sizing: border-box这是最基本的一点,将盒...
    99+
    2023-06-15
  • css如何使用网格布局实现居中
    小编给大家分享一下css如何使用网格布局实现居中,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!网格布局实现居中  .outer&...
    99+
    2024-04-02
  • 怎么使用CSS实现多列布局
    这篇“怎么使用CSS实现多列布局”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用CS...
    99+
    2024-04-02
  • 怎么用纯CSS实现表格响应式布局
    这篇文章主要讲解了“怎么用纯CSS实现表格响应式布局”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用纯CSS实现表格响应式布局”吧!布局效果:简单解析一...
    99+
    2024-04-02
  • 如何使用HTML和CSS实现瀑布流网格布局
    瀑布流网格布局是一种常见的布局方式,可以使网页元素呈现出类似瀑布流般的效果,给用户带来更好的视觉体验。本文将介绍如何使用HTML和CSS实现瀑布流网格布局,并提供具体的代码示例。首先,我们需要准备一些HTML结构和CSS样式。下面是一个基本...
    99+
    2023-10-21
    CSS html 瀑布流
  • 如何使用CSS Positions布局实现弹性网格
    CSS Positions布局是网页布局中常用的一种方式,它可以实现弹性网格的效果,让网页元素在不同设备上自适应显示。在本文中,我们将介绍如何使用CSS Positions布局来实现弹性网格,并提供具体的代码示例。一、理解CSS Posit...
    99+
    2023-10-21
    布局 CSS Positions 弹性网格
  • 使用CSS怎么实现双飞翼布局
    使用CSS怎么实现双飞翼布局?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。方式一:通过flex弹性布局来实现看代码//HTML结构,div2是中间的自适应区域...<bo...
    99+
    2023-06-08
  • 如何使用HTML和CSS实现一个全屏滚动布局
    随着互联网的发展,页面设计越来越注重用户体验。全屏滚动布局就是一种常用的设计方式,它能够让页面更加吸引人,并且提供了流畅的用户导航体验。如果你想学习如何使用HTML和CSS实现一个全屏滚动布局,本文将为你提供具体的代码示例和实现步骤。在开始...
    99+
    2023-10-21
    CSS html - 滚动布局 - 全屏布局 - 全屏滚动
  • 如何使用HTML和CSS实现一个导航标签布局
    导航标签布局在网页设计中非常常见,它可以让用户快速找到所需要的页面,并提高网站的导航友好度。下面将详细介绍如何使用HTML和CSS实现一个导航标签布局,并附上具体的代码示例。编写HTML结构首先,需要定义导航标签的HTML结构。可以使用无序...
    99+
    2023-10-21
    CSS html 导航标签
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作