1、前言

栅格布局或者说网格布局是很好用的东西,像一些商城类的排版就很适合用栅格布局,但是存在一定的兼容性问题,兼容性暂时还没有研究,这边学习总结是针对grid也就是栅格布局的使用的学习总结,下面将介绍我认为的常用的几个属性,如果想要更详细的学习,可以参考阮一峰老师的grid布局

2、使用

首先是html

<template><div class="grid-box"><div class="grid-item">1</div><div class="grid-item">2</div><div class="grid-item">3</div><div class="grid-item">4</div><div class="grid-item">5</div><div class="grid-item">6</div><div class="grid-item">7</div><div class="grid-item">8</div><div class="grid-item">9</div>
</div></template>

然后使用grid 布局列与行的列数行数都是根据需求来设置的,可以更改,更详细的可以搜阮一峰老师的grid布局查看,在本文首页有链接

.grid-box {// 栅格布局三行三列display: grid;// 3是多少行列 后面 100px是列宽,行的设置同理grid-template-columns: repeat(3, 100px);grid-template-rows: repeat(3, 100px);.grid-item {font-size: 50px;display: flex;justify-content: center;align-items: center;user-select: none;background: rgb(239,52,41);&:nth-child(2){background: rgb(246,143,37);}&:nth-child(3){background: rgb(75,168,70);}&:nth-child(4){background: rgb(4,118,194);}&:nth-child(5){background: rgb(192,119,175);}&:nth-child(6){background: rgb(248,210,157);}&:nth-child(7){background: rgb(180,168,127);}&:nth-child(8){background: rgb(208,228,168);}&:nth-child(9){background: rgb(77,199,236);}}
}

救会出现这样的效果了

如果想要好看点可以给父容器(.grid-box)加上一点内边距与阴影

padding: 10px;
box-shadow:  0 0 10px #999;

然后就得到了这样效果

此时我么可能会有让各个数字有间隙的需求,此时就可以用上下面两个属性了,也是在父容器设置的

// 行列间距
column-gap: 10px;
row-gap: 10px;

然后效果就是这样的

此时我们克呢该有会有这样的需求,就是按列排,而不是像上面按行排列,此时就需要使用到

 // 默认是按先行后列的,现在也可以改为先列后行 默认值是 rowgrid-auto-flow: column;

然后效果就是这样的

以上内容的完整代码如下

<template><div class="grid-box"><div class="grid-item">1</div><div class="grid-item">2</div><div class="grid-item">3</div><div class="grid-item">4</div><div class="grid-item">5</div><div class="grid-item">6</div><div class="grid-item">7</div><div class="grid-item">8</div><div class="grid-item">9</div>
</div></template><script setup lang='ts'>
</script>
<style scoped lang="scss">
.grid-box {// 栅格布局三行三列display: grid;// 3是多少行列 后面 100px是列宽,行的设置同理grid-template-columns: repeat(3, 100px);grid-template-rows: repeat(3, 100px);// 行列间距column-gap: 10px;row-gap: 10px;padding: 10px;box-shadow:  0 0 10px #999;// 默认是按先行后列的,现在也可以改为先列后行grid-auto-flow: column;.grid-item {font-size: 50px;display: flex;justify-content: center;align-items: center;user-select: none;background: rgb(239,52,41);&:nth-child(2){background: rgb(246,143,37);}&:nth-child(3){background: rgb(75,168,70);}&:nth-child(4){background: rgb(4,118,194);}&:nth-child(5){background: rgb(192,119,175);}&:nth-child(6){background: rgb(248,210,157);}&:nth-child(7){background: rgb(180,168,127);}&:nth-child(8){background: rgb(208,228,168);}&:nth-child(9){background: rgb(77,199,236);}}
}
</style>

假如每个单元格里面各自有内容,可以是使用以下链各个属性进行布局,它们的值可以是

// 设置单元格的布局,但是这两个属性设置后会减该内容压缩,所以使用的时候要注意
// 他么可以取的值是 start | end | center | stretch
justify-items: center;
align-items: center;

效果是这样的

还可以设置整体内容的排版

// 设置容器内整体内容的排版
// 可取的值为 start | end | center | stretch | space-around | space-between | space-evenly;
justify-content: center;
align-content: center;

效果

以上就是我认为常用的容器的属性,解释一下容器与项目(容器内的第一层子元素(项目里面的元素不是项目))在这里其实就是

.grid-box与.grid-item

3、项目属性

这里值写四个属性,其实不止,只不过作者是我认为常用的属性

grid-column-start属性:左边框所在的垂直网格线
grid-column-end属性:右边框所在的垂直网格线
grid-row-start属性:上边框所在的水平网格线
grid-row-end属性:下边框所在的水平网格线
// 设置单元格的内容样式
grid-column-start: 2;
grid-column-end: 4;
grid-row-start: 1;
grid-row-end: 3;

效果

代码:

<template><div class="grid-box"><div class="grid-item">1</div><div class="grid-item">2</div><div class="grid-item">3</div><div class="grid-item">4</div><div class="grid-item">5</div><div class="grid-item">6</div><div class="grid-item">7</div><div class="grid-item">8</div><div class="grid-item">9</div>
</div></template><script setup lang='ts'>
</script>
<style scoped lang="scss">
.grid-box {// 栅格布局三行三列height: 100%;display: grid;// 3是多少行列 后面 100px是列宽,行的设置同理grid-template-columns: repeat(3, 100px);grid-template-rows: repeat(3, 100px);// 行列间距column-gap: 10px;row-gap: 10px;padding: 10px;box-shadow:  0 0 10px #999;// 默认是按先行后列的,现在也可以改为先列后行()colunm)grid-auto-flow: row;// 设置单元格的布局,但是这两个属性设置后会减该内容压缩,所以使用的时候要注意// justify-items: center;// align-items: center;// 设置容器内整体内容的排版justify-content: center;align-content: center;.grid-item {font-size: 50px;display: flex;justify-content: center;align-items: center;user-select: none;background: rgb(239,52,41);&:nth-child(1) {// 设置单元格的内容样式grid-column-start: 2;grid-column-end: 4;grid-row-start: 1;grid-row-end: 3;}&:nth-child(2){background: rgb(246,143,37);}&:nth-child(3){background: rgb(75,168,70);}&:nth-child(4){background: rgb(4,118,194);}&:nth-child(5){background: rgb(192,119,175);}&:nth-child(6){background: rgb(248,210,157);}&:nth-child(7){background: rgb(180,168,127);}&:nth-child(8){background: rgb(208,228,168);}&:nth-child(9){background: rgb(77,199,236);}}
}
</style>

这是一个组件内容,需要在app.vue中引入使用

以上就是我对grid学习的笔记总结,欢迎批评指正,交流学习

grid 栅格/网格布局学习笔记相关推荐

  1. grid layout网格布局详解

    grid layout网格布局详解 什么是grid layout grid的特点 grid css属性的基础知识 创建一个grid布局 创建一个网格 隐性网格与显性网格 尺寸单位fr repeat函数 ...

  2. Grid:网格布局基础简述

     一.Grid:网格布局 Grid顾名思义就是"网格",它的子控件被放在一个一个实现定义好的小格子里面,整齐配列.Grid和其他各个Panel比较起来,功能最多也最为复杂. 要使用 ...

  3. CSS3与页面布局学习笔记(八)——浏览器兼容性问题与前端性能优化方案

    一.浏览器兼容 1.1.概要 世界上没有任何一个浏览器是一样的,同样的代码在不一样的浏览器上运行就存在兼容性问题.不同浏览器其内核亦不尽相同,相同内核的版本不同,相同版本的内核浏览器品牌不一样,各种运 ...

  4. grid layout(网格布局、栅格布局、grid布局):bootstrap,请到历史书报道!

    grid布局就是表格布局(grid layout),或者称之为栅格布局也行.因为栅格布局的概念来自于bootstrap,这里使用栅格布局来与bootstrap做关联,是因为它俩是描述的同一个东西.自从 ...

  5. CSS3与页面布局学习笔记(四)——页面布局大全(负边距、双飞翼、多栏、弹性、流式、瀑布流、响应式布局)

    一.负边距与浮动布局 1.1.负边距 所谓的负边距就是margin取负值的情况,如margin:-100px,margin:-100%.当一个元素与另一个元素margin取负值时将拉近距离.常见的功能 ...

  6. 【CSS】Grid 栅格布局学习笔记

    ⭐️ 本文首发自 前端修罗场(点击加入),是一个由 资深开发者 独立运行 的专业技术社区,我专注 Web 技术.Web3.区块链.答疑解惑.面试辅导以及职业发展.博主创作的 <前端面试复习笔记& ...

  7. CSS3与页面布局学习笔记(三)——BFC、定位、浮动、7种垂直居中方法

    一.BFC与IFC 1.1.BFC与IFC概要 BFC(Block Formatting Context)即"块级格式化上下文", IFC(Inline Formatting Co ...

  8. 【预告】新房装修网络规划网络布局学习笔记,家庭网络需求文章内容及结构...

    最近想写新房装修网络布局的相关文章(其实早就想写了),询问了很多搞装修的朋友和搞网络的朋友,尽管依然有很多问题没有解决,但是还是得动起来,实践出真知. 具体这么折腾有没有意义呢,这个就见仁见智了: 信 ...

  9. cesium绘制网格_Cesium学习笔记-工具篇37-风场绘制

    这两天重新接触到流场,于是研究下,在大牛们的轮子上也算实现了效果: 1二维 2三维 主要参考以下三篇文章: <WebGL风向图>给出制作风向图通常步骤: 1. 在屏幕上生成一系列随机粒子位 ...

最新文章

  1. 微隔离的红蔷薇在湾区创见的舞台绽放
  2. 浅谈代码的执行效率(4):汇编优化
  3. cloudtalk 无法连接到消息服务器,solr - Solr Cloud down无法与Zookeeper对话客户端会话超时 - 堆栈内存溢出...
  4. 【MFC】工具栏按钮追加显示文本
  5. android 向左滑动动画,Android中的滑动动画
  6. 1001 A+B Format (20分)——12行代码AC
  7. 对java注解的深入理解
  8. golang module实践
  9. Java案例:几种方式拷贝文件的耗时比较
  10. java update 8_版本任你发,我用Java 8!JDK的更新,改变了哪些你写代码的方式?...
  11. 抛开 Android 不谈,谁是最受欢迎的 Linux 发行版?
  12. AWS技术峰会免费报名 | 北上深三地可选,资深技术大牛分享实践干货
  13. QPressEvent实现双击ctrl快捷键
  14. 批量修改文件夹中文件的后缀名
  15. 【华大测评】+串口DMA收发数据
  16. uniapp绘制分享海报
  17. python面向对象OOP编程(三)-- 同类 不同实例 之间的关联关系
  18. AForge学习笔记(5):AForge.Imaging(上)
  19. 每日爬虫:爬百度千千音乐
  20. 计算机 smb共享,文件大师SMB共享使用方法

热门文章

  1. 工作小笔记——机器人底盘上里程计和惯导的融合
  2. 转换uptime_Uptime
  3. Android 快速开发框架:推荐10个框架
  4. uni-app.03.初始化picker下拉列表的默认值
  5. C# Linq基本操作以及into、let关键字
  6. PVE 7.4.3 1080ti显卡直通
  7. python报错TypeError: unsupported operand type(s) for -: ‘decimal.Decimal‘ and ‘float‘的解决方法
  8. 秋招offer收割机,各大厂的offer随便拿
  9. JAVA毕业设计vue.js开发红酒网站计算机源码+lw文档+系统+调试部署+数据库
  10. 《Android开发高手课》学习笔记