css——网格布局

2024-09-07 06:12
文章标签 布局 css frontend 网格

本文主要是介绍css——网格布局,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


名词解释

div{$}*9+tab键,快捷生成

 

记首字母gtc 

网格布局:display: grid;        grid-template-columns: 100px 100px 100px;        grid-template-rows: 100px 100px 100px; (父元素)

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.box{width: 300px;height: 300px;background-color: skyblue;/* 设置之网格布局 */display: grid;/* 设置纵向单元格属性(列) */grid-template-columns: 50px 20% auto;/* 20% 占父盒子的20% *//* 设置横向单元格属性(行) */grid-template-rows: 2fr 1fr 0.5fr;/* fraction n份 */}.box div{background-color: pink;width: 20px;height: 20px;}</style>
</head>
<body><div class="box"><div>1</div><div>2</div><div>3</div><div>4</div><div>5</div><div>6</div><div>7</div><div>8</div><div>9</div></div>
</body>
</html>

合并单元格:父盒子grid-template-areas:"a1 a1 a2"  "a1 a1 a2""a3 a3 a3"; 子盒子grid-area: a1;

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.box{width: 300px;height: 300px;background-color: skyblue;/* 设置之网格布局 */display: grid;/* 设置纵向单元格属性(列) *//* grid-template-columns: 50px 20% auto; *//* 20% 占父盒子的20% *//* 设置横向单元格属性(行) *//* grid-template-rows: 2fr 1fr 0.5fr; *//* fraction n份 */grid-template-columns: 1fr 1fr 1fr;grid-template-rows: 1fr 1fr 1fr;grid-template-areas: "a1 a1 a2""a1 a1 a2""a3 a3 a3";}.box div{background-color: pink;/* width: 20px;height: 20px; */border: 1px solid black;}.box div:nth-of-type(1){grid-area: a1;/* 指定元素代表单元格模板中的哪个标识 */}.box div:nth-of-type(2){grid-area: a2;}.box div:nth-of-type(3){grid-area: a3;}</style>
</head>
<body><div class="box"><div>1</div><div>2</div><div>3</div><!-- <div>4</div><div>5</div><div>6</div><div>7</div><div>8</div><div>9</div> --></div>
</body>
</html>

组合属性:grid-template:"a1 a1 a2" 1fr "a1 a1 a2" 1fr"a3 a3 a3" 1fr/ 1fr 1fr 1fr;}

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.box{width: 300px;height: 300px;background-color: skyblue;/* 设置之网格布局 */display: grid;/* 设置纵向单元格属性(列) *//* grid-template-columns: 50px 20% auto; *//* 20% 占父盒子的20% *//* 设置横向单元格属性(行) *//* grid-template-rows: 2fr 1fr 0.5fr; *//* fraction n份 *//* grid-template-columns: 1fr 1fr 1fr;grid-template-rows: 1fr 1fr 1fr;grid-template-areas: "a1 a1 a2""a1 a1 a2""a3 a3 a3"; *//* 组合属性 */grid-template: "a1 a1 a2" 1fr"a1 a1 a2" 1fr"a3 a3 a3" 1fr/ 1fr 1fr 1fr;}.box div{background-color: pink;/* width: 20px;height: 20px; */border: 1px solid black;}.box div:nth-of-type(1){grid-area: a1;/* 指定元素代表单元格模板中的哪个标识 */}.box div:nth-of-type(2){grid-area: a2;}.box div:nth-of-type(3){grid-area: a3;}</style>
</head>
<body><div class="box"><div>1</div><div>2</div><div>3</div><!-- <div>4</div><div>5</div><div>6</div><div>7</div><div>8</div><div>9</div> --></div>
</body>
</html>

 

行间隙row-gap: 20px;列间隙column-gap: 30px; 组合gap:20px 30px;

也可用于弹性盒子

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.box{width: 300px;height: 300px;background-color: skyblue;/* 设置之网格布局 */display: grid;/* 设置纵向单元格属性(列) *//* grid-template-columns: 50px 20% auto; *//* 20% 占父盒子的20% *//* 设置横向单元格属性(行) *//* grid-template-rows: 2fr 1fr 0.5fr; *//* fraction n份 *//* grid-template-columns: 1fr 1fr 1fr;grid-template-rows: 1fr 1fr 1fr;grid-template-areas: "a1 a1 a2""a1 a1 a2""a3 a3 a3"; *//* 组合属性 */grid-template: "a1 a1 a2" 1fr"a1 a1 a2" 1fr"a3 a3 a3" 1fr/ 1fr 1fr 1fr;/* row-gap: 20px;column-gap: 30px; */gap: 20px 30px}.box div{background-color: pink;/* width: 20px;height: 20px; */border: 1px solid black;}.box div:nth-of-type(1){grid-area: a1;/* 指定元素代表单元格模板中的哪个标识 */}.box div:nth-of-type(2){grid-area: a2;}.box div:nth-of-type(3){grid-area: a3;}</style>
</head>
<body><div class="box"><div>1</div><div>2</div><div>3</div><!-- <div>4</div><div>5</div><div>6</div><div>7</div><div>8</div><div>9</div> --></div>
</body>
</html>

 

子元素对齐 主轴 justify-items: end/start/auto/center;  交叉轴align-items ;  组合place-items: center end;(交叉轴 主轴)

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.box{width: 300px;height: 300px;background-color: skyblue;/* display: flex;flex-wrap: wrap;row-gap: 20px;column-gap: 20px; */display: grid;grid-template-columns: 1fr 1fr 1fr;grid-template-columns: 1fr 1fr 1fr;/* justify-items: end;align-items: center; */place-items: center end;}.box div{width: 50px;height: 50px;background-color: pink;}</style>
</head>
<body><div class="box"><div>1</div><div>2</div><div>3</div><div>4</div><div>5</div><div>6</div><div>7</div><div>8</div><div>9</div></div>
</body>
</html>

单元格对齐 justify-content: space-around;align-content: center;组合place-content: center space-around;

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.box{width: 300px;height: 300px;background-color: skyblue;/* display: flex;flex-wrap: wrap;row-gap: 20px;column-gap: 20px; */display: grid;grid-template-columns: 50px 50px 50px;grid-template-columns: 50px 50px 50px;/* justify-items: end;align-items: center; *//* place-items: center end; *//* justify-content: space-around;align-content: center; */place-content: center space-around; }.box div{width: 50px;height: 50px;background-color: pink;}</style>
</head>
<body><div class="box"><div>1</div><div>2</div><div>3</div><div>4</div><div>5</div><div>6</div><div>7</div><div>8</div><div>9</div></div>
</body>
</html>

隐式单元格 grid-auto-flow: row; grid-auto-rows: 50px; 

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.box{width: 300px;height: 300px;background-color: skyblue;display: grid;grid-template-columns: 1fr 1fr 1fr;grid-template-rows: 1fr;/* 控制隐式单元格 */grid-auto-flow: row;grid-auto-rows: 50px;/* grid-auto-flow: column; *//* grid-auto-columns: 150px; */}.box div{background-color: pink;}</style>
</head>
<body><div class="box"><div>1</div><div>2</div><div>3</div><div>4</div><div>5</div><div>6</div><div>7</div><div>8</div><div>9</div></div>
</body>
</html>

默认

 

控制隐式单元格后

这篇关于css——网格布局的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1144283

相关文章

HTML5的input标签的`type`属性值详解和代码示例

《HTML5的input标签的`type`属性值详解和代码示例》HTML5的`input`标签提供了多种`type`属性值,用于创建不同类型的输入控件,满足用户输入的多样化需求,从文本输入、密码输入、... 目录一、引言二、文本类输入类型2.1 text2.2 password2.3 textarea(严格

SpringBoot返回文件让前端下载的几种方式

《SpringBoot返回文件让前端下载的几种方式》文章介绍了开发中文件下载的两种常见解决方案,并详细描述了通过后端进行下载的原理和步骤,包括一次性读取到内存和分块写入响应输出流两种方法,此外,还提供... 目录01 背景02 一次性读取到内存,通过响应输出流输出到前端02 将文件流通过循环写入到响应输出流

SpringBoot+Vue3整合SSE实现实时消息推送功能

《SpringBoot+Vue3整合SSE实现实时消息推送功能》在日常开发中,我们经常需要实现实时消息推送的功能,这篇文章将基于SpringBoot和Vue3来简单实现一个入门级的例子,下面小编就和大... 目录前言先大概介绍下SSE后端实现(SpringBoot)前端实现(vue3)1. 数据类型定义2.

前端Visual Studio Code安装配置教程之下载、汉化、常用组件及基本操作

《前端VisualStudioCode安装配置教程之下载、汉化、常用组件及基本操作》VisualStudioCode是微软推出的一个强大的代码编辑器,功能强大,操作简单便捷,还有着良好的用户界面,... 目录一、Visual Studio Code下载二、汉化三、常用组件1、Auto Rename Tag2

Qt实现删除布局与布局切换功能

《Qt实现删除布局与布局切换功能》在Qt应用开发中,动态管理布局是一个常见需求,比如根据用户操作动态删除某个布局,或在不同布局间进行切换,本文将详细介绍如何实现这些功能,并通过完整示例展示具体操作,需... 目录一、Qt动态删除布局1. 布局删除的注意事项2. 动态删除布局的实现步骤示例:删除vboxLay

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

前端缓存策略的自解方案全解析

《前端缓存策略的自解方案全解析》缓存从来都是前端的一个痛点,很多前端搞不清楚缓存到底是何物,:本文主要介绍前端缓存的自解方案,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、为什么“清缓存”成了技术圈的梗二、先给缓存“把个脉”:浏览器到底缓存了谁?三、设计思路:把“发版”做成“自愈”四、代码

通过React实现页面的无限滚动效果

《通过React实现页面的无限滚动效果》今天我们来聊聊无限滚动这个现代Web开发中不可或缺的技术,无论你是刷微博、逛知乎还是看脚本,无限滚动都已经渗透到我们日常的浏览体验中,那么,如何优雅地实现它呢?... 目录1. 早期的解决方案2. 交叉观察者:IntersectionObserver2.1 Inter

Vue3视频播放组件 vue3-video-play使用方式

《Vue3视频播放组件vue3-video-play使用方式》vue3-video-play是Vue3的视频播放组件,基于原生video标签开发,支持MP4和HLS流,提供全局/局部引入方式,可监听... 目录一、安装二、全局引入三、局部引入四、基本使用五、事件监听六、播放 HLS 流七、更多功能总结在 v