HTML+CSS - 网页布局之网格布局

news2024/9/20 21:55:08

1. dispaly设置

display是 CSS 中用于设置元素的显示方式的属性。它决定了元素如何被渲染到页面上。不同的display值会改变元素的显示行为,包括布局、排版以及对其他元素的影响。

其中网格容器是最常用的几种方式之一,在文档中创建类似于网格的效果,将组件十分方便的进行填充布局。

2. 创建网格容器

1. 设置元素显示方式为grid

.container{
    display:grid;
}

创建一个网格图,初始为一例一行。

2. 设置网格列的个数与宽度

grid-template-columns:repeat(3,1fr);

px代表实数排布,设置多少,间隔多少。

fr代表比例表示,在可编辑位置进行比例排布。

3. 设置网格行的个数与高度

grid-template-rows:repeat(2,100px);

设置多少行,每一行的高度。

3. 网格细节修改

2.1 设置间隔大小

grid-gap:10px; /*行列间隔大小一致*/
grid-column-gap:10px; /*网格列的大小,即间隔宽度*/
grid-row-gap:10px; /*网格行大小,即间隔高度*/

设置每一个块状体彼此之间的距离 

2.2 显式网格与隐式网格

显式网格是我们用 grid-template-columns 或 grid-template-rows 属性创建的。而隐式网格则是当有内容被放到网格外时才会生成的。

隐式网格会自动生成,根据我们所设置的相关参数持续排布。若没有指定行的大小,则默认为auto

2.3 自动填充多列

.container {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  grid-auto-rows: minmax(100px, auto);
  grid-gap: 20px;
}

设置列:每一列最小200px宽度,最大1fr的比例,根据大小自动生成有多少列数

设置行:最小100px的高度,最大不设限

3. 网格元素放置

3.1 直接放置

	.container {
	  display: grid;
	  grid-template-columns: repeat(3, 1fr); /* 三列,每列占据相等的空间 */
	  grid-template-rows: repeat(2, 100px);  /* 两行,每行100px高 */
	  gap: 10px; /* 网格单元之间的间隙 */
	}

一般而言,会自动将网格布局所含概的子类类别自动按照代码顺序填充进去

3.2 自定义位置放置

• grid-column & grid-row

<div class="container">
  <div class="item1">1</div>
  <div class="item2">2</div>
  <div class="item3">3</div>
  <div class="item4">4</div>
  <div class="item5">5</div>
  <div class="item6">6</div>
</div>
.item1 { grid-column: 1 / 2; grid-row: 1 / 2; }
.item2 { grid-column: 2 / 3; grid-row: 1 / 2; }
.item3 { grid-column: 3 / 4; grid-row: 1 / 2; }
.item4 { grid-column: 1 / 2; grid-row: 2 / 3; }
.item5 { grid-column: 2 / 3; grid-row: 2 / 3; }
.item6 { grid-column: 3 / 4; grid-row: 2 / 3; }

 grid-column 是 CSS Grid 布局中的一个属性,用于指定一个网格项目在网格中的列位置。它可以定义项目开始和结束的列线,控制项目跨越的列数。

grid-column: <start-line> / <end-line>;

• 设置起始

.item1 {
  grid-column: 1 / 3; /* 从第1列线开始,跨越到第3列线 */
}

第一个块状体的末尾线默认为第二个块状体的起始线。 

• 设置跨越

.item2 {
  grid-column: 2 / span 2; /* 从第2列线开始,跨越2列 */
}

span所定义跨越2列 

3.3 设置起始位置

grid-column-start 是 CSS Grid 布局中的一个属性,用于指定网格项目开始在哪一列的网格线。它可以单独使用,也可以和 grid-column-end 配合使用来定义项目跨越的列范围。

.item {
  grid-column-start:1; /*项目从第一列开始*/
  grid-column-start: span 2; /* 项目跨越2列,从当前位置往后 */
}

搭配grid-column-end:

.item {
  grid-column-start: 1; /* 从第1列线开始 */
  grid-column-end: 4;   /* 到第4列线结束 */
}

4. 网格布局实例

使用HTML编写网页内容

	<body>
<div class="container">
  <header>This is my lovely blog</header>
  <article>
    <h1>My article</h1>
    <p>
      Duis felis orci, pulvinar id metus ut, rutrum luctus orci. Cras porttitor
      imperdiet nunc, at ultricies tellus laoreet sit amet. Sed auctor cursus
      massa at porta. Integer ligula ipsum, tristique sit amet orci vel, viverra
      egestas ligula. Curabitur vehicula tellus neque, ac ornare ex malesuada
      et. In vitae convallis lacus. Aliquam erat volutpat. Suspendisse ac
      imperdiet turpis. Aenean finibus sollicitudin eros pharetra congue. Duis
      ornare egestas augue ut luctus. Proin blandit quam nec lacus varius
      commodo et a urna. Ut id ornare felis, eget fermentum sapien.
    </p>

    <p>
      Nam vulputate diam nec tempor bibendum. Donec luctus augue eget malesuada
      ultrices. Phasellus turpis est, posuere sit amet dapibus ut, facilisis sed
      est. Nam id risus quis ante semper consectetur eget aliquam lorem. Vivamus
      tristique elit dolor, sed pretium metus suscipit vel. Mauris ultricies
      lectus sed lobortis finibus. Vivamus eu urna eget velit cursus viverra
      quis vestibulum sem. Aliquam tincidunt eget purus in interdum. Cum sociis
      natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
    </p>
  </article>
  <aside>
    <h2>Other things</h2>
    <p>
      Nam vulputate diam nec tempor bibendum. Donec luctus augue eget malesuada
      ultrices. Phasellus turpis est, posuere sit amet dapibus ut, facilisis sed
      est.
    </p>
  </aside>
  <footer>Contact Taoabo@qq.com</footer>
</div>

	</body>

原有HTML文档: 

使用css进行修饰

	<style>
	.container
	{
		display:grid;
		grid-template-columns: 1fr 3fr;
		grid-gap:20px;
	}
	header{
		grid-column:1/3;
		grid-row: 1;
	}
	article{
		grid-column:2;
		grid-row:2;
	}
	aside{
		grid-column:1;
		grid-row:2;
	}
	footer{
		grid-column:1/3;
		grid-row:3;
	}
	footer {
	  border-radius: 5px;
	  padding: 10px;
	  background-color: rgb(207, 232, 220);
	  border: 2px solid rgb(79, 185, 227);
	}
	header{
		font-size: 50px;
		border-radius: 5px;
		background-color: #90EE90;
		padding:10px;
	}
	</style>

效果展示: 

5. 参考资料

网格 - 学习 Web 开发 | MDN

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2134608.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

迷你洗衣机哪个牌子好又实惠?5大主流产品综合实测分享!

在日常生活中&#xff0c;内衣洗衣机已成为现代家庭必备的重要家电之一。选择一款耐用、质量优秀的内衣洗衣机&#xff0c;不仅可以减少洗衣负担&#xff0c;还能提供高效的洗涤效果。然而&#xff0c;市场上众多内衣洗衣机品牌琳琅满目&#xff0c;让我们往往难以选择。那么&a…

有性价比高的无线蓝牙耳机吗?四款适合学生党的开放式耳机推荐

最近也是大学生高中生都开学了&#xff0c;我想很多学生都想寻找一款性价比高的真无线蓝牙耳机来提升学习和休闲时的音频体验吧。但是市场上的蓝牙耳机品牌和型号繁多&#xff0c;所以并非所有都适合学生群体的预算和需求。只能是由比较专业的耳机测评专家来推荐给学生党入手了…

git编译安装报错

编译安装步骤 卸载旧的 yum -y remove gitcd /usr/local/src/wget https://www.kernel.org/pub/software/scm/git/git-2.15.1.tar.xztar -vxf git-2.15.1.tar.xzcd git-2.15.1make prefix/usr/local/git allmake prefix/usr/local/git installecho "export PATH$PATH:/usr…

C++教程(一):超详细的C++矩阵操作和运算(附实例代码,与python对比)

python教程&#xff08;一&#xff09;&#xff1a;超详细的numpy矩阵操作和运算&#xff08;附实例代码&#xff09; 在之前的章节中&#xff0c;我们详细介绍了python中numpy的矩阵操作。但在自动驾驶开发中&#xff0c;我们一般采用C进行功能开发&#xff0c;因此C矩阵运算…

8月最新大模型新书-《自然语言处理:大模型理论与实践》(附PDF)西财赵宇教授新作

介绍 本书主要面向高校本科生、研究生及教学科研人员&#xff0c;适合作为教学用书。同时&#xff0c;它也适合计算语言学家、语言学家、数据科学家和NLP开发人员等专业人士使用。为了照顾不同读者的学科背景差异&#xff0c;书中附录部分专门介绍了与NLP密切相关的基础知识&a…

HAL库学习梳理——SPI(收发Flash数据实验)

实验现象&#xff1a;将LED灯的状态保存到Flash里&#xff0c;掉电读取Flash并设置LED。 1&#xff0c;STM32CubeMx 配置 1.1 SPI引脚说明 外设连接 1.2 参数配置 配置工作模式 主机工作模式 SPI 工作参数设置 1.3 GPIO配置 SPI接线配置 SPI引脚的GPIO配置 2&#xff0c;程序…

大模型开源:ChatGLM-6B (介绍以及本地部署)

简介 ChatGLM-6B 是一个开源的、支持中英双语问答的对话语言模型&#xff0c;基于 General Language Model (GLM) 架构&#xff0c;具有 62 亿参数。结合模型量化技术&#xff0c;用户可以在消费级的显卡上进行本地部署&#xff08;INT4 量化级别下最低只需 6GB 显存&#xff…

水位雨量自动监测站的工作原理

水位雨量自动监测站是一种集自动化、智能化于一体的水文监测设施&#xff0c;主要用于实时监测和记录水位及降雨量的变化&#xff0c;为水文预报、水资源管理、防洪减灾等提供科学依据。水位雨量自动监测站主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构…

js读取文件,生成随机题目,多项选择题则提供随机答案供选择

一.第一个要求 根据模板生成随机题目可以将 --- 内的内容 ---变成JSON然后根据参数的限制条件来生成随机参数&#xff0c;再替换到题目中example.md --- Type: Quiz Template Domain: - Geometry Knowledge:- - 數學- 度量、圖形與空間範疇- 弧長和扇形面積- 理解圓的弧長公…

掌握项目全流程:10个项目管理烫知识

一、启动阶段 1、一个清晰且有吸引力的项目愿景对于项目的成功启动至关重要。它能够让所有项目成员以及相关干系人明白项目的最终目标和意义。 在这个阶段&#xff0c;我们可以利用项目管理工具进度猫来可视化地呈现项目的整体愿景&#xff0c;将大的目标拆分成初步的任务板…

RT-DETR训练自己的数据集(从代码下载到实例测试)

文章目录 前言一、RT-DETR简介二、环境搭建三、构建数据集四、修改配置文件①数据集文件配置②模型文件配置③训练文件配置 五、模型训练和测试模型训练模型测试 总结 前言 提示&#xff1a;本文是RT-DETR训练自己数据集的记录教程&#xff0c;需要大家在本地已配置好CUDA,cuD…

302状态如何进行重定向

文章目录 一、302状态是什么意思二、遇到的使用场景三、如何处理customservice.wxmlcustomservice.js 一、302状态是什么意思 302状态码是临时重定向&#xff08;Move Temporarily&#xff09;&#xff0c;表示所请求的资源临时地转移到新的位置。此外还有一个301永久重定向&a…

【spring】maven引入okhttp的日志拦截器打开增量注解进程

HttpLoggingInterceptor 是在logging-interceptor库中的:这个logging库老找不到 import okhttp3.OkHttpClient; import okhttp3.logging.HttpLoggingInterceptor;发现这仨是独立的库 pom中三个依赖 <!-- OKHTTP3 --><

在group by分组的时候,某个key过多导致数据倾斜

解决方案&#xff1a;将 key 打散&#xff0c;给 key 增加随机前缀 在进行 group by 之前&#xff0c;先给每个 user_id 增加一个随机前缀&#xff0c;使得原本相同的 user_id 被打散到不同的分组中。 按带前缀的 key 进行分组 对带有随机前缀的 user_id 进行分组和聚合。 …

重要涉密文件如何防窃取?四个方法有效防止文件泄密【文件保密管理】

随着信息化时代的发展&#xff0c;数据安全问题变得日益突出&#xff0c;特别是对于一些重要的涉密文件&#xff0c;其泄密将带来严重后果。因此&#xff0c;企业和个人在处理机密文件时&#xff0c;必须采取有效的措施来防止文件被窃取。 小编在本文将介绍四个有效的方法&…

三招教你搞定GPU服务器配置→收藏推荐配置

在AI人工智能应用日益渗透各行各业的今天&#xff0c;图形处理器&#xff08;GPU&#xff09;市场呈现出蓬勃发展的态势&#xff0c;其中GPU服务器市场更是炙手可热&#xff0c;其热度始终居高不下。随着人工智能、深度学习、大数据分析等前沿领域的不断拓展与深化&#xff0c;…

python+matplotlib 画一个漂亮的折线统计图

pythonmatplotlib 画一个漂亮的折线统计图 有详细的注释说明…… import matplotlib.pyplot as plt import numpy as np import mathdef draw_line_chart(Line_data_list,title,pic_name)::param Line_data_list: 折线数据源:param title: 图表名称:param pic_name: 保存图片名…

免费!OpenAI发布最新模型GPT-4o mini,取代GPT3.5,GPT3.5退出历史舞台?

有个小伙伴问我&#xff0c;GPT-4O mini是什么&#xff0c;当时我还一脸懵逼&#xff0c;便做了一波猜测&#xff1a; 我猜测哈&#xff0c;这个可能是ChatGPT4o的前提下&#xff0c;只支持文本功能的版本&#xff0c;速度更快 结果&#xff0c;大错特错。 让我们一起看看Open…

理解高并发

文章目录 1、如何理解高并发2、高并发的关键指标3、高并发系统设计的目标是什么&#xff1f;1_宏观目标2_微观目标1.性能指标2.可用性指标3.可扩展性指标 4、高并发的实践方案有哪些&#xff1f;1_通用的设计方法1.纵向扩展&#xff08;scale-up&#xff09;2.横向扩展&#xf…

【隐私计算】Cheetah安全多方计算协议-阿里安全双子座实验室

2PC-NN安全推理与实际应用之间仍存在较大性能差距&#xff0c;因此只适用于小数据集或简单模型。Cheetah仔细设计DNN&#xff0c;基于格的同态加密、VOLE类型的不经意传输和秘密共享&#xff0c;提出了一个2PC-NN推理系统Cheetah&#xff0c;比CCS20的CrypTFlow2开销小的多&…