• Grid 网格响应式布局教程


    一、概述

    它将网页划分成一个个网格,可以任意组合不同的网格,做出各种各样的布局。以前,只能通过复杂的 CSS 框架达到的效果,现在浏览器内置了。

    相对于display:flex 弹性布局Grid 布局则是将容器划分成"行"和"列",产生单元格,然后指定"项目所在"的单元格,可以看作是二维布局,在某些使用场景下,会比flex布局更便捷一些。

    在这里插入图片描述

    二、基础使用

    	<div class="container">
    		<div class="item bg-color-red">1div>
    		<div class="item bg-color-yellow">2div>
    		<div class="item bg-color-green">3div>
    		<div class="item bg-color-red">4div>
    		<div class="item bg-color-yellow">5div>
    		<div class="item bg-color-green">6div>
    		<div class="item bg-color-red">7div>
    		<div class="item bg-color-yellow">8div>
    		<div class="item bg-color-green">9div>
    	div>
    

    那么我们采用网格布局的区域,称为"容器"(container)。容器内部采用网格定位的子元素,称为"项目"(item)

    	.container {
    		display: grid;
    		/* 设置三列 宽度自适应 */
    		/* grid-template-columns: auto auto auto;*/
    		/* grid-template-columns: 1fr 2fr 1fr ; */
    		/* grid-template-columns:repeat(3, 1fr 2fr 1fr); */
    		/* 设置三列 宽度自适应 repeat()写法效果同上 */
    		grid-template-columns: repeat(3, auto);
    		/* 设置三行 容器高度 200px  */
    		/* grid-template-rows: 200px 200px 200px; */
    		/* grid-template-rows: repeat(3, 200px 200px 200px); */
    		grid-template-rows: repeat(3, 200px);
    		/* 行内自动填充宽度为 200px  */
    		/* grid-template-columns: repeat(auto-fill, 200px); */
    		/* 设置行列 直接的间距 */
    		grid-gap: 10px;
    	}
    	.item {
    		text-align: center;
    		line-height: 200px;
    		font-size: 32px;
    	}
    	.bg-color-red {
    		background: red;
    	}
    
    	.bg-color-yellow {
    		background: yellow;
    	}
    
    	.bg-color-green {
    		background: green;
    	}
    

    repeat()函数

    有时候重复写同样的值很麻烦,我们可以使用·repeat()函数

    repeat()接受两个参数,第一个参数是重复的次数,第二个参数是所要重复的值

    在这里插入图片描述

    auto-fill参数

    grid-template-columns: repeat(auto-fill, 200px);设置宽度为200px,自动填充,超出宽度自动换行。

    在这里插入图片描述

    fr 关键字

    grid-template-columns:repeat(3, 1fr 2fr 1fr)比例分配布局。如果两列的宽度分别为1fr和2fr,就表示后者是前者的两倍,个人觉得类似于flex:1,flex:2,的性质。
    在这里插入图片描述

    接下来我们来实现响应式,不得不说grid布局还是很强大的,在响应式布局实现起来也很方便

    	@media screen and (min-width:765px) and (max-width:1200px) {
    		.container {
    			display: grid;
    			grid-template-columns: repeat(3, auto);
    			grid-gap: 10px;
    		}
    	}
    
    	@media screen and (min-width:500px) and (max-width:768px) {
    		.container {
    			display: grid;
    			grid-template-columns: repeat(2, auto);
    			grid-gap: 10px;
    		}
    	}
    
    	@media screen and (max-width:500px) {
    		.container {
    			display: grid;
    			grid-template-columns: 1fr;
    			grid-gap: 10px;
    		}
    	}
    

    以上我们通过控制grid-template-columns就简单实现了响应式的布局,希望对大家有所帮助。

    喜欢下方小程序的私信送源码
  • 相关阅读:
    基于象鼻虫损害优化算法求解装箱问题附Matlab代码
    ChatGLM3 本地部署的解决方案
    Cisco ASA防火墙——远程控制与多安全区域
    教你快速搭建微服务环境
    I/O多路转接之select
    codereview指南:使用 vs code 插件 gitlens 对比不同分支代码
    设计模式-工厂方法模式
    再来了解机器学习和深度学习_有监督机器学习_无监督机器学习---人工智能工作笔记0018
    ZZNUOJ_C语言1013:求两点间距离(完整代码)
    【PCB专题】如何在嘉立创8月1日起的新规则下免费打样
  • 原文地址:https://blog.csdn.net/weixin_42460570/article/details/127103180