网站首页 > 技术文章 正文
CSSgrid布局
CSS grid布局是一种很强大的布局,兼容性如上表所示,表现在控制台里,你可以清楚看到他的内部每一个块都由一个虚线方块组成。他的每行每列都会生产一个单元格,而划分他们之间的线称为网格线。我这次就主要讲述其中两个属性。
内容
1.grid-template-columns(rows), 他可以的定义网格列或者行的维度大小,在属性数值上,除了比较常用的属性,还支持fr,flex弹性系数,可以根据该数值比例来分配剩余空间。还有[xx]在属性数值里定义网格线的名称,方便以后再次引用他。还有repeat属性。
如图所示的样式,是类似列表一样有很多重复的模块,就可以用到repeat属性来进行重复。
repeat(5, 250px);类似这样的属性数值。那么我就想了,如果只是这样,普通的布局也能实际,为啥要用这个repeat呢。如果我想自适应宽度变化可以吗?答案是支持的。repeat还支持auto-fill, auto-fit这2个属性能进行自动填充,配合minmax属性可以实现根据宽度进行子列表的自适应布局。如:repeat(auto-fill, minmax(100px, 1fr)); 代表了自动填充,minmanx最小值,配合flex分配空间。
关于autfo-fit,autofill的区别在mdn上有解释,但是可能难理解,直接利用mdn上2个例子。
grid-template-columns: repeat(auto-fill, minmax(10px, 1fr));
grid-template-columns: repeat(auto-fit, minmax(10px, 1fr));
可以清楚的看到,在网格不能填满一行的时候,auto-fit会尽可能的让元素去填满他,也就是说剩余的空间会被分配到每个元素上,而auto-fill还是按照原来的布局,模拟元素可以填满一行的情况。
2.grid-gap设置网格行和列之间的间隙大小
兼容情况如下图所示:
根据mdn文档,实验中的功能gap(grid-gap)属性也被flex布局所支持。但是兼容性应该不好太好。
gap属性有什么用呢?
如上图布局,如果支持gap,那么只要之间写一个gap: 1px就可以了。不然的话,就比较繁琐了,只能利用边距去实现。
总结
css grid还有很多属性可以用来布局元素,本文仅仅只是讲到了一小点。它在现代浏览器中的支持度还是不错的,可以多多用它。如果支持的浏览器兼容性不是太好的话,只能用其他东西来代替它了。
给你代码|往期回顾:
猜你喜欢
- 2024-11-15 Velocity.js 动画库的使用(vue常用的动画库)
- 2024-11-15 【CSS】响应式网页设计(响应式网页怎么设计)
- 2024-11-15 移动前端重构实战系列:5-7章(前端移动端主要技术有哪些)
- 2024-11-15 2019年我总结的前端面试题(2021年前端面试题汇总)
- 2024-11-15 使用RKE的方式快速部署K8S集群(k8s部署zookeeper集群)
- 2024-11-15 手把手教你实现一个Vue自定义指令懒加载
- 2024-11-15 怎么学习前端开发?(怎么样才能学好前端开发)
- 2024-11-15 2019 大龄前端如何准备面试?(大龄前端怎么找到工作)
- 2024-11-15 入门难吗?该如何学习前端(初学前端)
- 2024-11-15 Web前端入门学习路径:教你4步走(web前端快速入门)
- 标签列表
-
- content-disposition (47)
- nth-child (56)
- math.pow (44)
- 原型和原型链 (63)
- canvas mdn (36)
- css @media (49)
- promise mdn (39)
- readasdataurl (52)
- if-modified-since (49)
- css ::after (50)
- border-image-slice (40)
- flex mdn (37)
- .join (41)
- function.apply (60)
- input type number (64)
- weakmap (62)
- js arguments (45)
- js delete方法 (61)
- blob type (44)
- math.max.apply (51)
- js (44)
- firefox 3 (47)
- cssbox-sizing (52)
- js删除 (49)
- js for continue (56)
- 最新留言
-