css 网格布局

news2024/11/26 11:51:02

简介: 网格是由一系列水平及垂直的线构成的一种布局模式。一个网格通常具有许多的列(column)行(row),以及行与行、列与列之间的间隙,这个间隙一般被称为沟槽(gutter)。

一、display 属性

当一个 HTML 元素将 display 属性设置为 gridinline-grid 后,它就变成了一个网格容器,这个元素的所有直系子元素将成为网格元素。

例:display:grid

<!DOCTYPE html>
<html lang="en-us">
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width" />
    <title>CSS Grid - line-based placement starting point</title>
    <style>
        body {
            width: 90%;
            max-width: 900px;
            margin: 2em auto;
            font: 0.9em/1.2 Arial, Helvetica, sans-serif;
        }

        .container {
            display: grid;
            min-width: 200px;
            grid-template-columns: 1fr 1fr;
            background: bisque;
        }
        .container > div{
            height: 100px;
            border: 3px solid blueviolet;
            text-align: center;
            line-height: 100px;
            color: blue;
            font-size: 15px;
            font-weight: bold;
        }

    </style>
</head>
<body>
<div class="container">
    <div>1</div>
    <div>2</div>
    <div>3</div>
</div>
</body>
</html>

结果:
在这里插入图片描述
例:display:inline-grid

<!DOCTYPE html>
<html lang="en-us">
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width" />
    <title>CSS Grid - line-based placement starting point</title>
    <style>
        body {
            width: 90%;
            max-width: 900px;
            margin: 2em auto;
            font: 0.9em/1.2 Arial, Helvetica, sans-serif;
        }

        .container {
            display: inline-grid;
            min-width: 200px;
            grid-template-columns: 1fr 1fr;
            background: bisque;
        }
        .container > div{
            height: 100px;
            border: 3px solid blueviolet;
            text-align: center;
            line-height: 100px;
            color: blue;
            font-size: 15px;
            font-weight: bold;
        }

    </style>
</head>
<body>
<div class="container">
    <div>1</div>
    <div>2</div>
    <div>3</div>
</div>
</body>
</html>

结果:
在这里插入图片描述

二、网格轨道

我们通过 grid-template-columnsgrid-template-rows 属性来定义网格中的行和列。这些属性定义了网格的轨道,一个网格轨道就是网格中任意两条线之间的空间。

列设置:

grid-template-columns:1fr 2fr 1fr; //三列,宽度分成四份,第一和第二列占一份,第二列占两份

注意:除了长度和百分比,我们也可以用fr这个单位来灵活地定义网格的行与列的大小,这个单位表示了可用空间的一个比例

行设置:

grid-template-rows:100px 200px; //两行,第一行是100px,第二行是200px

例:

<!DOCTYPE html>
<html lang="en-us">
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width" />
    <title>CSS Grid - line-based placement starting point</title>
    <style>
        body {
            width: 90%;
            max-width: 900px;
            margin: 2em auto;
            font: 0.9em/1.2 Arial, Helvetica, sans-serif;
        }

        .container {
            display: grid;
            min-width: 200px;
            grid-template-columns: 1fr 2fr 1fr;
            grid-template-rows: 100px 200px;
            background: bisque;
        }
        .container > div{
            border: 3px solid blueviolet;
            text-align: center;
            line-height: 100px;
            color: blue;
            font-size: 15px;
            font-weight: bold;
        }

    </style>
</head>
<body>
<div class="container">
    <div>1</div>
    <div>2</div>
    <div>3</div>
    <div>4</div>
    <div>5</div>
    <div>6</div>
</div>
</body>
</html>

结果:
在这里插入图片描述

三、网格间隙

使用 grid-column-gap 属性来定义列间隙;使用 grid-row-gap 来定义行间隙;使用 grid-gap 可以同时设定两者。

例:grid-gap:10px;

<!DOCTYPE html>
<html lang="en-us">
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width" />
    <title>CSS Grid - line-based placement starting point</title>
    <style>
        body {
            width: 90%;
            max-width: 900px;
            margin: 2em auto;
            font: 0.9em/1.2 Arial, Helvetica, sans-serif;
        }

        .container {
            display: grid;
            min-width: 200px;
            grid-template-columns: 1fr 2fr 1fr;
            grid-template-rows: 100px 200px;
            gap: 10px;
            background: bisque;
        }
        .container > div{
            border: 3px solid blueviolet;
            text-align: center;
            line-height: 100px;
            color: blue;
            font-size: 15px;
            font-weight: bold;
        }

    </style>
</head>
<body>
<div class="container">
    <div>1</div>
    <div>2</div>
    <div>3</div>
    <div>4</div>
    <div>5</div>
    <div>6</div>
</div>
</body>
</html>

结果:
在这里插入图片描述
例:grid-column-gap:10px;
在这里插入图片描述
例:grid-row-gap:10px;
在这里插入图片描述

四、隐式网格

隐式网格中生成的行/列大小是参数默认是auto,大小会根据放入的内容自动调整。当然,你也可以使用grid-auto-rowsgrid-auto-columns属性手动设定隐式网格的大小。

显式网格与隐式网格的区别

例:行设置

grid-template-rows: 100px 200px;

在这里插入图片描述

grid-auto-rows: 100px 200px;

在这里插入图片描述

五、网格区域

网格元素可以向行或着列的方向扩展一个或多个单元,并且会创建一个网格区域。网格区域的形状应该是一个矩形 ,也就是说你不可能创建出一个类似于"L"形的网格区域

在这里插入图片描述
我们根据这些分隔线来放置元素,通过以下属性来指定从那条线开始到哪条线结束。

grid-column-start 
grid-column-end 
grid-row-start 
grid-row-end 

这些属性的值均为分隔线序号,你也可以用以下缩写形式来同时指定开始与结束的线。

grid-column 
grid-row

例:

<!DOCTYPE html>
<html lang="en-us">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width">
    <title>CSS Grid - line-based placement starting point</title>
    <style>
        body {
            width: 90%;
            max-width: 900px;
            margin: 2em auto;
            font: .9em/1.2 Arial, Helvetica, sans-serif;
        }

        .container {
            display: grid;
            grid-template-columns: repeat(12, minmax(0,1fr));
            gap: 20px;
        }

        header,
        footer {
            border-radius: 5px;
            padding: 10px;
            background-color: rgb(207,232,220);
            border: 2px solid rgb(79,185,227);
        }

        aside {
            border-right: 1px solid #999;
        }

        header {
            grid-column: 1 / 13;
            grid-row: 1;
        }

        article {
            grid-column: 4 / 13;
            grid-row: 2;
        }

        aside {
            grid-column: 1 / 4;
            grid-row: 2;
        }

        footer {
            grid-column: 1 / 13;
            grid-row: 3;
        }

    </style>
</head>

<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 me@mysite.com</footer>
</div>

</body>

</html>

结果:
在这里插入图片描述
注意: 以上例子函数的使用
1、minmax():为一个行/列的尺寸设置了取值范围。比如设定为 minmax(100px, auto),那么尺寸就至少为 100 像素,并且如果内容尺寸大于 100 像素则会根据内容自动调整。
2、repeat():表示轨道列表的重复片段,允许以更紧凑的形式写入大量显示重复模式的列或行

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

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

相关文章

智能摄像头视频监控,智和信通一站式解决方案

为进一步加强公共安全视频监控建设联网应用工作&#xff0c;推动整合各类视频图像资源&#xff0c;九部委联合发布的《关于加强公安视频监控建设网络化应用的若干意见》&#xff0c;明确以全域覆盖、全网共享、全时可用、全程可控为总目标。在大大加强城市社会安全保障能力的同…

Kafka Producer 开发

Kafka Producer 开发 kafka包含5个核心的API接口定义&#xff1a; Producer API - 允许应用程序往kafka集群中的topic中发送事件消息Consumer API - 允许应用程序从kafka topic 中读取数据Streams API - 允许对输入数据流进行数据计算、转换&#xff0c;并发送到其他主题进行…

Ultra-high Resolution Image Segmentation via Locality-aware Context Fusion

极高图像语义分割。 作者使用了一个高分辨率分割的pipeline&#xff0c;将原始的超高分辨率图像分成一块一块的用于局部分割&#xff0c;然后将局部的分割结果融合形成最终的高分辨率分割。 方法&#xff1a;1&#xff1a;作者引入了一个局部感知上下文融合&#xff08;LCF&…

怎么提升360网站权重?怎么查询网站在360权重

怎么提升360网站权重&#xff1f; 一、增加网站流量 1、做高指数的关键词排名。 2、关键词的合理布局。 3、关键词的布局必须注意密度。 4、网站关键词的页面布局必须合理。二、网站页面内容布局 网站页面的内容可以说是网站的灵魂。网站的好坏完全取决于网站的内容是否能给访问…

Redis6新数据类型Bitmaps

Redis6新数据类型1.Bitmaps2.命令1.Bitmaps 简介&#xff1a;现代计算机用二进制(位)作为信息的基础单位&#xff0c;1个字节等于8位&#xff0c;例如“abc”字符串由3个字节组成&#xff0c;但实际在计算机存储时将其用二进制表示&#xff0c;“abc”分别对应的ASCII码是97、…

​草莓熊python turtle绘图(圣诞元旦倒数雪花版)附源代码

​草莓熊python turtle绘图&#xff08;圣诞元旦倒数雪花版&#xff09;附源代码 本篇目录&#xff1a; 一、前言 二、​草莓熊python绘图&#xff08;圣诞元旦倒数雪花版&#xff09;效果图 三、源代码保存方法 四、代码命令解释 &#xff08;1&#xff09;、绘图基本代码…

LaTeX教程(四)——文档内元素

文章目录1. 表格2. 插入图片3. 盒子4. 浮动体1. 表格 LaTeX的表格不想Word能够做到所见即所得&#xff0c;当表格较小还好&#xff0c;一旦表格内容逐渐增多&#xff0c;那么编写表格就变得十分麻烦了&#xff0c;为此&#xff0c;一般都是用在线表格并生成LaTeX代码的形式来得…

Linux——管道和重定向

一、Linux的文件 linux中奉行一切皆文件&#xff0c;包括目录、链接&#xff08;类似windows的快捷方式&#xff09;、设备文件。 在内核中,所有打开的文件都使用文件描述符&#xff08;一个非负整数&#xff09;标记。文件描述符的变化范围是0~OPEN_MAX – 1。早期的unix系统…

前端CDN和DNS

DNS的基础知识 统一资源定位符(URL) scheme: 方案&#xff0c;包括http&#xff0c;https协议。 host&#xff1a;主机 port&#xff1a;端口 path&#xff1a;路径 query&#xff1a;查询 fragment&#xff1a;片段&#xff0c;访问网址时候定位某个位置 DNS &#xff08;Do…

Java 开发环境配置

在本章节中我们将为大家介绍如何搭建Java开发环境。 Windows 上安装开发环境Linux 上安装开发环境安装 Eclipse 运行 Javawindow系统安装java 下载JDK 首先我们需要下载 java 开发工具包 JDK&#xff0c;下载地址&#xff1a;Java Downloads | Oracle&#xff0c;在下载页面…

Kaggle房价预测 特征工程模型聚合

目录 一&#xff1a;Kaggle数据集准备 二&#xff1a;数据集分析 三&#xff1a;空值处理 四&#xff1a;空值填充 五&#xff1a;查找所有字符列 六&#xff1a;实例化独热编码对象 七&#xff1a;方差过滤 八&#xff1a;特征数据提取 九&#xff1a;查看特征之间…

跨域/解决跨域方法

一、同源策略 同源策略(Same Origin Policy)是一种约定&#xff0c;它是浏览器最核心也是最基本的安全功能。同源策略会阻止一个域的javascrip脚本和另一个域的内容进行交互&#xff0c;是用于隔离潜在恶意文件的关键安全机制&#xff1b;关于这一点我们后面会举例说明。如果缺…

C语言—指针

指针用来存放一个内存地址&#xff1b; 指针的类型就是要存放地址的变量的数据类型&#xff1b; #include <stdio.h>int main() {int a 123;char b H;int *pa &a;char *pb &b;printf("%d\n", *pa);printf("%c", *pb); } pa要存放int类…

评估篇 | 单元测试评估也能复用到集成测试?脚本帮你高效评估

上次我们分享了单元测试用例的复用&#xff0c;单元测试的用例可以复用到集成测试&#xff0c;那单元测试的评估是否也可以复用到集成测试&#xff1f;答案是可以的。 TPT中提供了多种多样的评估方式&#xff0c;其中的脚本评估使我们复用测试评估成为可能。脚本评估&#xff…

@EnableCaching如何一键开启缓存

EnableCaching如何一键开启缓存手动挡CacheManagerCache使用演示小结自动挡CachingConfigurationSelectorAutoProxyRegistrarProxyCachingConfigurationCacheOperationSourceCacheOperationBeanFactoryCacheOperationSourceAdvisorCacheInterceptor小结手动挡 我们首先来看看S…

成本、利润分析法在企业管理中的应用

1 、成本、利润分析法的主要内容 成本、利润分析法主要是指&#xff0c;利用数学模型&#xff0c;对关于企业成本、利润的要素分析&#xff0c;然后计算出要素的改变对企业成本、利润的影响&#xff0c;进而对企业决策提出建议的一种方法。在成本、利润分析法中&#xff0c;最主…

基础IO——文件描述符

文章目录1. 文件描述符fd1.1 open返回值2. 理解Linux下一切皆文件3. 文件描述符的分配规则4. 重定向的本质4.1 使用 dup2 系统调用4.2 追加重定向4.3 输入重定向1. 文件描述符fd 1.1 open返回值 我们先来看下面的例子&#xff1a; 运行结果如下&#xff1a; 我们知道open的…

磺基-CY5 马来酰亚胺 Cyanine5 Maleimide

磺基-CY5 马来酰亚胺 Cyanine5 Maleimide Cyanine5 maleimide是单一活性染料&#xff0c;有选择性的与硫醇基团&#xff08;比如蛋白和多肽的半胱氨酸&#xff09;结合以进行标记。我们使用水溶的Sulfo-Cyanine5 maleimide标记抗体和其他敏感蛋白。Cyanine5是Cy5的类似物&am…

Pb协议的接口测试

Protocol Buffers 是谷歌开源的序列化与反序列化框架。它与语言无关、平台无关、具有可扩展的机制。用于序列化结构化数据&#xff0c;此工具对标 XML &#xff0c;支持自动编码&#xff0c;解码。比 XML 性能好&#xff0c;且数据易于解析。更多有关工具的介绍可参考官网。 P…

Java8新特性学习

文章目录Lambda表达式为什么使用Lambda表达式Lambda表达式语法语法格式一&#xff1a;无参数&#xff0c;无返回值语法格式二&#xff1a;有一个参数&#xff0c;并且无返回值语法格式三&#xff1a;若只有一个参数&#xff0c;小括号可以省略不写语法格式四&#xff1a;有两个…