网格布局,实现网页图片不规则排版

article/2025/9/28 3:53:45

 1、网格布局的含义,及与弹性盒布局的区别

含义:它将网页划分成一个个网格,可以任意组合不同的网格,做出各式各样的布局;

区别:Grid布局与Flex布局有一定的相似性,都可以指定容器内部多个项目的位置。但是,它们存在重大区别。

Flex布局是轴线布局,只能指定“项目”针对轴线的位置,可以看作是一维布局。也就是弹性盒布局是让这些项目(小盒子)统一在正轴的中间显示/两端对齐/靠左显示/靠右显示,在副轴什么位置显示。

Grid布局则是将容器划分成“行”和“列”,产生单元格,然后指定“项目所在”的单元格,可以看作是二维布局。

✍网格布局案例:不规则布局页面(win窗口)

2、Grid布局介绍

✍(1)容器、项目、行和列、单元格、网格线的概念:

✍(2)网格布局的属性:

网格布局中的属性和flex中的布局属性类似,分为两类:容器属性、项目属性

【1】容器属性

给父元素添加display:grid;

属性值有两个:grid(块网格)、inline-grid(行内网格,行内快);

下面介绍的“3-6”属性都是加在父盒子身上的;

说明一点:行内标签加上了display:grid;就可以设置宽和高了,

 【2】项目属性:下面介绍的“7-以后”是加给子盒子的;

3、行列属性、行列划分(行和列属性也是加在父盒子身上的

行属性:grid-template-row:       列属性:grid-template-column:

设置行属性和列属性有几种办法:

(1)设置固定值行和列:

设置格式:

结果:结果是3行3列的网格盒子

代码说明:代码中画红色框的是设置行和列的属性,设置的是3行3列的网格,如果想设置成3行3列,行属性就有三个属性值,三个属性值分别是3行的高度大小,列属性也有三个属性值,三个属性值代表的是3列的宽度大小。就是行属性值有n个代表划分为n行,列同理;数值代表每行占的高度大小,列同理。属性值个数代表行数/列数,属性值大小代表每行行高/每列列宽。

(2)设置百分比行和列:

 结果:

(3)repeat函数设置行和列:(设置等宽等高网格的好办法

 结果:

 代码说明:repeat(参数1,参数2);用repeat()函数这种办法是设置等宽等高网格的好办法,第一个参数是设置n行/n列,第二个参数是行高/列宽是多少

另外,这个repeat函数的写法还支持将前面第一个参数改为“auto-fill”,这样网格会根据后面写的等比百分比自动给你划分为等高等宽的几行几列。代码:

结果是四行四列的网格。。。。

(4)用fr片段设置行和列属性:

 代码:

 结果:

 代码说明:fr是一个比例单位,类似于弹性盒里面的flex属性,比如上述代码行属性值:100px 1fr 300px;这句话的含义是第一行100px高度,第三行300px高度,中间那行自适应;上述列属性值:1fr 2fr 1fr;含义是三行按照1:2:1的比例划分宽度。总结:如果属性值中只有一个用了fr这个单位,就是自适应;如果是多了用了fr,就代表按照比例划分高度/宽度。

(5)auto自适应来设置行和列

这个自适应也可以写成auto,代码如下:

 4、行间距/列间距(重点:复合属性) 

属性介绍:

行间距:grid-row-gap: 20px;   列间距:grid-column-gap: 20px;  复合式写法:grid-gap: 20px 20px;

新版本的可以省略前面的grid;行间距:row-gap:20px; 列间距:column-gap:20px; 复合写法:gap:20px 20px;

代码演示:

 结果:

 

5、网格区域合并

视频:178-网格布局-区域命名与合并_哔哩哔哩_bilibili

 首先我们先定义一下这些网格区域的名字:用属性grid-template-areas:定义

 因为上面我们划分了3行3列,所以这里我们定义了九个区域的名字,

那我们想将“2”和“3”这个区域合并在一起:

 结果:

 代码说明:我们想让2和3位置合并都是2的位置,那我们就将上面代码中那个c的区域名也改成b的区域名,这样就说明b占了两个位置,然后把b那片区域赋给2这个孩子,那2就占了两个位置了,然后3这个盒子就被挤到下一格了,然后9就被挤没了,看结果可以看出来2占了两个位置,9没了。

6、对齐方式

(1)内容排列方式

网格布局里面的内容默认是横向排列的图示:

 将其改为竖直方向,需要属性:grid-auto-flow:column;默认是(row)

(2)网格对齐方式

还有如果里面的网格设置的区域很小,占不满整个大盒子,图示:

 我们可以设置这个网格在大盒子中的显示位置,属性如下:

水平方向对齐属性:justify-content:

竖直方向对齐属性:align-content:

复合写法:place-content:

(3)网格内容对齐属性:

 7、项目属性:(目的也是为了网格合并)

学这个属性前,也知道网格线的知识,图示:

 网格线指的是图示中1-6的竖线和横线,我们可以控制开始的网格线和结束的网格线实现网格合并

属性介绍:

 代码:

 结果:

 代码解释:画红色框的代码指的是“1”的区域是行从第一个网格线开始到第二个网格线结束,也就是第一行;列从第一个网格线开始到第三个网格线结束,也就是前两列,所以‘1’所占的区域就是第一行前两列。。。


http://chatgpt.dhexx.cn/article/bgeC3tMb.shtml

相关文章

6、微信小程序的布局

文章目录 前言一、传统基本布局1.盒子模型2.显示方式Display3.定位position4.溢出属性Overflow5.浮动Float6.对齐 二、Flex弹性布局1.基本属性2.使用示例 前言 wxss 指的是 Wei Xin Style Sheet,微信团队定义的一套用以实现小程序布局样式的层叠样式表,…

微信小程序 居中、居右、居底和横向、纵向布局,文字在图片中间,网格布局

微信小程序居中、居右、横纵布局 1、水平垂直居中(相对父类控件)方式一:水平垂直居中 父类控件: display: flex;align-items: center;//子控件垂直居中justify-content: center;//子控件水平居中width: 100%;height: 400px //注意…

微信小程序居中、居右、居底和横向、纵向布局,文字在图片中间,网格布局

微信小程序居中、居右、横纵布局 1、水平垂直居中(相对父类控件) 方式一:水平垂直居中 父类控件: display: flex;align-items: center;//子控件垂直居中justify-content: center;//子控件水平居中width: 100%;height: 400px//注…

小程序中的网格布局

在日常小程序开发中,第一个遇到的问题是页面布局的问题。设计师给的设计稿通常是一个静态的图片,我们要把图片转换成实际可以使用的布局。在电商场景中,我们经常会看到商品的两列布局,通常在CSS中,两列布局可以使用网格布局的方案解决。我们本篇就讲解一下CSS的网格布局,…

微信小程序: 使用grid进行网格布局

grid与flex一样用于页面布局。flex用于一维布局,grid用于二维布局。所以有时候一些网格状的布局相对于grid来说会更加方便。 注意,设为网格布局以后,容器子元素(项目)的float、display: inline-block、display: table-…

Spug - 轻量级自动化运维平台

Spug - 轻量级自动化运维平台 对于中小型企业而言,进行主机和应用的管理是比较麻烦的,应用部署往往需要直接连接服务器,再进行手动的环境配置、代码拉取、应用构建和部署发布等工作,容易出错,且耗时费力。一个好的自动…

网络自动化运维(NetDevOps)创作者推荐

前言: 随着NetDevOps技术登上了历史舞台,越来越多的从业者开始利用NetDevOps简化网络的运维,并进行了技术分享,将蛋糕越做越大。在这里,仅代表个人对这些无私奉献的网络、运维工程师们表达由衷的敬意。 此外&#xff…

开源自动化运维平台Spug

开源自动化运维平台Spug Spug演示环境特性安装Docker安装安装步骤1. 安装docker2. 拉取镜像3. 启动容器4. 初始化5. 访问测试6. 版本升级 Spug Spug是面向中小型企业设计的轻量级无Agent的自动化运维平台,整合了主机管理、主机批量执行、主机在线终端、应用发布部署…

自动化运维工具

自动化运维 通过运维工具或平台,实现IT基础设施及业务应用日常任务处理和运维流程的自动化,从而提高效率和降低风险,促进运维组织的成熟和各种能力的升级。 自动化运维工具 部署类:jenkins 环境类:ansible/saltStac…

关于自动化运维的那些事儿

随着近年全球运维大会的火热举办,自动化运维话题被推向了前所未有地热度。自动化运维并不是炒作的概念,而是随着信息技术发展的必要趋势。“大数据”“容器”“DevOps”“微服务”……,不断涌现出新的技术,而它们都有共同的特点&a…

部署自动化运维工具rundeck

简单介绍: RunDeck 是用 Java/Grails 写的开源工具,帮助用户在数据中心或者云环境中自动化各种操作和流程。通过命令行或者 web 界面,用户可以对任意数量的服务器进行操作,大大降低了对服务器自动化的门槛。 官网地址&#xff1a…

python自动化运维学习

1.python能做什么? 2.解释型与编译型语言的区别? 3.动态型与静态型语言的区别? 4.ASCLL Unicode GBK UTF-8之间的联系 ASCLL码是最初被创建出来表示字符的,总共255个。每个占1字节---》字符不够用---》单独的中文编码GBK&#xff…

一站式自动化运维及自动化部署平台

真正的大师,永远都怀着一颗学徒的心! 一、项目简介 一站式自动化运维及自动化部署平台 二、实现功能 支持机器管理(环境变量、机器秘钥、终端日志、终端会话、机器代理) 支持调度任务 支持执行管理 支持应用管理 支持构建发布 支持用户…

IT运维之自动化运维

大家好,我是技福的小咖老师。 今天咱们来简单讲讲自动化运维的话题。 现在随着IT运维管理工作的复杂度和难度的大大增加,过去仅靠几个专门的运维人员或是“技术大拿”来包打天下已经行不通了,企业开始需要运用专业化、标准化和流程化的手段来…

自动化运维与普通运维有什么区别?

本文首发于知乎,由嘉为蓝鲸原创。 商业转载请联系作者获得授权,非商业转载请注明出处。 01. 何为自动化运维&普通运维? 在了解两者的区别前,我们得先明确对二者的定义,总的来说运维工作的目的都是为了保障企业业…

自动化运维平台Spug介绍

一、概要 Spug是一款使用PythonFlaskVueElement组件开发的开源运维管理系统,系统前后端分离,项目创建于2017年,2018 年 2 月第一个开源运维平台版本发布,设计为面向中小型企业设计的轻量级无Agent的自动化运维平台,UI基于Ant Desi…

Django 实现自动化运维后台

layui 框架与BootCSS框架相似都属于前端美化框架,区别在于BootCSS更加专业,而LayUI则更多的是面向于后端开发者,所以在组织形式上毅然采用了几年前的以浏览器为宿主的类 AMD 模块管理方式,却又并非受限于 CommonJS 的那些条条框框…

Linux自动化运维工具ansible详解

文章目录 认识ansibleansible的组成ansible的相关文件ansible的使用ansible的常用模块1、copy模块2、fetch模块3、command模块4、shell 模块5、file模块6、cron模块7、yum模块8、service模块9、script模块 认识ansible ansible是一个自动化运维工具的名称,集合了众…

如何实现网络自动化运维?

众所周知,网络是多个设备之间共享信息的连接。如今,手动管理连接到网络的每个设备会是一项重大的挑战,但是IT管理员可以通过网络自动化软件的功能的帮助来克服这一挑战,从而大大减少工作量和人为错误的可能。 网络编排是一种策略驱…

IT自动化运维平台建设解决方案

u当前IT运维的整体发展趋势是向自动化迭代,并向智能化演化; u目前大部分组织的IT运维正处在从人工运维向自动化运维的发展阶段; u有部分组织已经基本实现了自动化运维,正在向智能化运维升级,而也已有少量企业已经构建了…