grid 栅格/网格布局学习笔记
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 栅格/网格布局学习笔记相关推荐
- grid layout网格布局详解
grid layout网格布局详解 什么是grid layout grid的特点 grid css属性的基础知识 创建一个grid布局 创建一个网格 隐性网格与显性网格 尺寸单位fr repeat函数 ...
- Grid:网格布局基础简述
一.Grid:网格布局 Grid顾名思义就是"网格",它的子控件被放在一个一个实现定义好的小格子里面,整齐配列.Grid和其他各个Panel比较起来,功能最多也最为复杂. 要使用 ...
- CSS3与页面布局学习笔记(八)——浏览器兼容性问题与前端性能优化方案
一.浏览器兼容 1.1.概要 世界上没有任何一个浏览器是一样的,同样的代码在不一样的浏览器上运行就存在兼容性问题.不同浏览器其内核亦不尽相同,相同内核的版本不同,相同版本的内核浏览器品牌不一样,各种运 ...
- grid layout(网格布局、栅格布局、grid布局):bootstrap,请到历史书报道!
grid布局就是表格布局(grid layout),或者称之为栅格布局也行.因为栅格布局的概念来自于bootstrap,这里使用栅格布局来与bootstrap做关联,是因为它俩是描述的同一个东西.自从 ...
- CSS3与页面布局学习笔记(四)——页面布局大全(负边距、双飞翼、多栏、弹性、流式、瀑布流、响应式布局)
一.负边距与浮动布局 1.1.负边距 所谓的负边距就是margin取负值的情况,如margin:-100px,margin:-100%.当一个元素与另一个元素margin取负值时将拉近距离.常见的功能 ...
- 【CSS】Grid 栅格布局学习笔记
⭐️ 本文首发自 前端修罗场(点击加入),是一个由 资深开发者 独立运行 的专业技术社区,我专注 Web 技术.Web3.区块链.答疑解惑.面试辅导以及职业发展.博主创作的 <前端面试复习笔记& ...
- CSS3与页面布局学习笔记(三)——BFC、定位、浮动、7种垂直居中方法
一.BFC与IFC 1.1.BFC与IFC概要 BFC(Block Formatting Context)即"块级格式化上下文", IFC(Inline Formatting Co ...
- 【预告】新房装修网络规划网络布局学习笔记,家庭网络需求文章内容及结构...
最近想写新房装修网络布局的相关文章(其实早就想写了),询问了很多搞装修的朋友和搞网络的朋友,尽管依然有很多问题没有解决,但是还是得动起来,实践出真知. 具体这么折腾有没有意义呢,这个就见仁见智了: 信 ...
- cesium绘制网格_Cesium学习笔记-工具篇37-风场绘制
这两天重新接触到流场,于是研究下,在大牛们的轮子上也算实现了效果: 1二维 2三维 主要参考以下三篇文章: <WebGL风向图>给出制作风向图通常步骤: 1. 在屏幕上生成一系列随机粒子位 ...
最新文章
- 微隔离的红蔷薇在湾区创见的舞台绽放
- 浅谈代码的执行效率(4):汇编优化
- cloudtalk 无法连接到消息服务器,solr - Solr Cloud down无法与Zookeeper对话客户端会话超时 - 堆栈内存溢出...
- 【MFC】工具栏按钮追加显示文本
- android 向左滑动动画,Android中的滑动动画
- 1001 A+B Format (20分)——12行代码AC
- 对java注解的深入理解
- golang module实践
- Java案例:几种方式拷贝文件的耗时比较
- java update 8_版本任你发,我用Java 8!JDK的更新,改变了哪些你写代码的方式?...
- 抛开 Android 不谈,谁是最受欢迎的 Linux 发行版?
- AWS技术峰会免费报名 | 北上深三地可选,资深技术大牛分享实践干货
- QPressEvent实现双击ctrl快捷键
- 批量修改文件夹中文件的后缀名
- 【华大测评】+串口DMA收发数据
- uniapp绘制分享海报
- python面向对象OOP编程(三)-- 同类 不同实例 之间的关联关系
- AForge学习笔记(5):AForge.Imaging(上)
- 每日爬虫:爬百度千千音乐
- 计算机 smb共享,文件大师SMB共享使用方法
热门文章
- 工作小笔记——机器人底盘上里程计和惯导的融合
- 转换uptime_Uptime
- Android 快速开发框架:推荐10个框架
- uni-app.03.初始化picker下拉列表的默认值
- C# Linq基本操作以及into、let关键字
- PVE 7.4.3 1080ti显卡直通
- python报错TypeError: unsupported operand type(s) for -: ‘decimal.Decimal‘ and ‘float‘的解决方法
- 秋招offer收割机,各大厂的offer随便拿
- JAVA毕业设计vue.js开发红酒网站计算机源码+lw文档+系统+调试部署+数据库
- 《Android开发高手课》学习笔记