0

0

CSS如何实现具有艺术感的非对称网格布局_通过手动指定每个网格项的坐标

P粉602998670

P粉602998670

发布时间:2026-03-08 04:23:07

|

163人浏览过

|

来源于php中文网

原创

非对称网格本质是放弃自动排列,为每个 grid-item 单独设置 grid-row/grid-column 起止线;浏览器硬放置,不校验重叠、留空或越界。

css如何实现具有艺术感的非对称网格布局_通过手动指定每个网格项的坐标

grid-rowgrid-column 精确控制每个格子位置

非对称网格的本质,不是靠 grid-template-areas 画大区块,而是放弃自动排列,给每个 grid-item 单独设起止线。浏览器按你写的行号列号硬放,不校验是否重叠、留空或越界。

实操建议:

  • grid-row: 2 / 4 表示从第 2 条横线开始、到第 4 条横线结束(含第 2 行、第 3 行);写成 grid-row: 2 / -1 也能跨到底部,但得确认容器有足够行线
  • 列方向同理,grid-column: 1 / span 3 比写死终点更安全,尤其当列数可能变化时
  • 别依赖 grid-auto-flow: dense 去“填空”——它只对自动放置生效,手动指定坐标后完全失效
  • grid-line 名称(如 grid-column: start / wide-end)比纯数字可读性高,但需先在容器上定义 grid-template-columns: [start] 1fr [mid] 2fr [wide-end] 1fr

为什么 grid-template-areas 不适合真正非对称布局

它要求所有区域名在每行都出现且对齐,本质是“命名的矩形块”,一旦想让某个项斜跨、L 形、或中间挖空,就会报错或强制拉伸变形。

常见错误现象:

立即学习前端免费学习笔记(深入)”;

标书对比王
标书对比王

标书对比王是一款标书查重工具,支持多份投标文件两两相互比对,重复内容高亮标记,可快速定位重复内容原文所在位置,并可导出比对报告。

下载
  • grid-template-areas: "a b . c" "a d d c",第二行 a 试图向上延伸,但 CSS 规范禁止跨行同名区域——浏览器直接忽略该行定义,退回到默认流
  • . 表示空单元格,但整行全是 . 时,该行高度塌陷为 0,后续区域整体下移,视觉错乱
  • 区域名不能含短横线或数字开头,"hero-banner" 合法,"1-hero" 会静默失败

响应式下手动坐标的维护成本和替代思路

一套 grid-row/grid-column 值在小屏大概率错位甚至溢出。与其写多套媒体查询覆盖全部坐标,不如分层处理。

使用场景与取舍:

  • PC 端坚持手动坐标,用 @container(配合 container-type: inline-size)做局部调整,比全局 @media 更精准
  • 移动端直接切回 display: flexdisplay: block,用 order 控制顺序,放弃位置精确性换可维护性
  • 若必须保持 grid,优先用 span 而非绝对终点,例如 grid-column: 2 / span 2grid-column: 2 / 4 在列数变化时更鲁棒
  • 避免在同一个容器里混用自动放置项(无坐标)和手动坐标项——自动项会无视已占位置,强行塞进剩余空间,导致重叠

调试时怎么看实际渲染出的网格线

Chrome DevTools 的 Layout 面板勾选 “Show line names” 只显示你定义的命名线,不显示隐式生成的线号。真正要看每个项卡在哪几条线之间,得靠计算 + 验证。

实操建议:

  • 在容器上加 outline: 1px solid red,再给每个 grid-itemoutline: 1px dashed blue,能直观看出是否贴边、重叠或悬空
  • 临时把 grid-row-start 改成 grid-row: auto / auto,观察该项是否回归自动流位置——如果没变,说明原本的坐标其实没生效(比如行线数不够)
  • getComputedStyle(el).gridRowStart 查 JS 中解析后的值,注意它返回字符串如 "2""span 3",不是数字,别直接参与运算

手动坐标的自由度很高,但代价是每个格子的位置都成了独立变量,改一个常要连带调周边。最易被忽略的是隐式网格轨道的尺寸——没显式定义 grid-template-rows 时,浏览器按内容撑开,而内容高度又受字体、行高、padding 影响,最终坐标偏移往往源于这一层“看不见的弹性”。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
chrome什么意思
chrome什么意思

chrome是浏览器的意思,由Google开发的网络浏览器,它在2008年首次发布,并迅速成为全球最受欢迎的浏览器之一。本专题为大家提供chrome相关的文章、下载、课程内容,供大家免费下载体验。

1044

2023.08.11

chrome无法加载插件怎么办
chrome无法加载插件怎么办

chrome无法加载插件可以通过检查插件是否已正确安装、禁用和启用插件、清除插件缓存、更新浏览器和插件、检查网络连接和尝试在隐身模式下加载插件方法解决。更多关于chrome相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

827

2023.11.06

chrome什么意思
chrome什么意思

chrome是浏览器的意思,由Google开发的网络浏览器,它在2008年首次发布,并迅速成为全球最受欢迎的浏览器之一。本专题为大家提供chrome相关的文章、下载、课程内容,供大家免费下载体验。

1044

2023.08.11

chrome无法加载插件怎么办
chrome无法加载插件怎么办

chrome无法加载插件可以通过检查插件是否已正确安装、禁用和启用插件、清除插件缓存、更新浏览器和插件、检查网络连接和尝试在隐身模式下加载插件方法解决。更多关于chrome相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

827

2023.11.06

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

738

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

219

2023.09.04

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1561

2023.10.24

字符串介绍
字符串介绍

字符串是一种数据类型,它可以是任何文本,包括字母、数字、符号等。字符串可以由不同的字符组成,例如空格、标点符号、数字等。在编程中,字符串通常用引号括起来,如单引号、双引号或反引号。想了解更多字符串的相关内容,可以阅读本专题下面的文章。

649

2023.11.24

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

23

2026.03.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 0.9万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.5万人学习

CSS教程
CSS教程

共754课时 | 40.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号