CSS 网格并指定多个区域

2024-03-10

我需要一些元素重叠,我还想通过区域名称而不是行/列来指定内容,因为这样可以更好地阅读。

我一生都无法理解如何按照 MDN 示例指定多个网格区域。或者,如果它甚至可能,文章建议它根据语法示例是可能的,但它实际上是如何工作的?没有任何线索。

问题示例:

document.querySelector("input").focus();
#my_grid {
  display:grid;
  grid-gap:5px;
  grid-template-rows: 50px 50px 50px;
  grid-template-columns: 50px 50px 50px;
  grid-template-areas:  "a b c"
                        "d e f"
                        "g h i";

}

#my_grid > div {
  text-align:center;
  line-height:50px;
  border:1px solid rgba(0,0,0,0.3);
  background-color:rgba(0,0,0,0.1);
}
<div id="my_grid">
  <div style="grid-area:a">a</div>
  <div style="grid-area:b">b</div>
  <div style="grid-area:c">c</div>
  <div style="grid-area:d">d</div>
  <div style="grid-area:e">e</div>
  <div style="grid-area:f">f</div>
  <div style="grid-area:g">g</div>
  <div style="grid-area:h">h</div>
  <div style="grid-area:i">i</div>
  <input type="text" onKeyUp="this.style.gridArea = this.value" style="grid-area:d / e" value="d / e">
</div>

Type your own area

我希望我的输入涵盖区域 d 和 e,指定 d / e 只是将其放入 e 中。


您需要指定 4 个值,例如grid-area: d / d / d / e意思是:

grid-row-start: d;
grid-column-start: d; /* Start at d */
grid-row-end: d;
grid-column-end: e; /* End at e */
document.querySelector("input").focus();
#my_grid {
  display:grid;
  grid-gap:5px;
  grid-template-rows: 50px 50px 50px;
  grid-template-columns: 50px 50px 50px;
  grid-template-areas:  "a b c"
                        "d e f"
                        "g h i";

}

#my_grid > div {
  text-align:center;
  line-height:50px;
  border:1px solid rgba(0,0,0,0.3);
  background-color:rgba(0,0,0,0.1);
}
<div id="my_grid">
  <div style="grid-area:a">a</div>
  <div style="grid-area:b">b</div>
  <div style="grid-area:c">c</div>
  <div style="grid-area:d">d</div>
  <div style="grid-area:e">e</div>
  <div style="grid-area:f">f</div>
  <div style="grid-area:g">g</div>
  <div style="grid-area:h">h</div>
  <div style="grid-area:i">i</div>
  <input type="text" onKeyUp="this.style.gridArea = this.value" style="grid-area: d / d / d / e" value="d / d / d / e">
</div>

Type your own area

只有两个值grid-area: d / e你有:

grid-row-start: d;
grid-column-start: e;
grid-row-end: d;
grid-column-end: e; 

所以这基本上会将元素定位在行的交集处d和那里的列e(只有一个单元格是e).

grid-area: a / i会将您带到该区域c例如。

From t他规格 https://www.w3.org/TR/css-grid-1/#implicitly-assigned-line-name:

grid-template-areas 属性从模板中的命名网格区域生成隐式分配的线名称。对于每个命名网格区域foo,创建四个隐式分配的行名称:两个命名foo-start,命名指定网格区域的行起始线和列起始线,以及两个命名的foo-end,命名指定网格区域的行尾线和列尾线。

Then

<custom-ident>

第一次尝试将网格区域的边缘与命名网格区域匹配:如果存在具有该名称的命名线<custom-ident>-start (for grid-*-start) / <custom-ident>-end (for grid-*-end),将第一条这样的线贡献给网格项的放置。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CSS 网格并指定多个区域 的相关文章

  • 表格内的垂直滚动条不显示:块

    有没有办法在里面有一个垂直滚动条 tbody 一张桌子并有display table放在桌子上但不使用display block桌子内的任何地方 对于滚动条部分 将其添加到要滚动的标签中 style overflow y scroll tb
  • Javascript 可折叠面板默认打开

    我正在关注这个代码示例在这里找到 https www w3schools com howto howto js collapsible asp使用 css html javascript 创建可折叠面板 function toggleCol
  • 在响应式设计中将顶部元素移动到底部的最佳方法是什么

    我有以下 HTML 格式 将给定元素放置在桌面上的顶部和移动设备上的底部 宽度 p I am on the top of desktop page and bottom of mobile page p 以响应式方式重新排序未知高度的元素最
  • CSS 列数导致项目拆分列

    尝试不使用 jQuery 脚本来实现砖石效果 因此寻找 CSS 替代方案 我正在尝试使用列计数 这似乎有效 但不符合预期 因此 列就在那里 但有时容器中的项目会被拆分为多个列 正如您应该在此示例中看到的那样 http jsfiddle ne
  • 为什么有些网站在 iPad 上无法缩放?

    有谁知道为什么 iPad 缩放 你知道 你用两根手指放大文本 屏幕 在某些网站上不起作用 例如 脸书网 c3 arc nasa gov nex 我正在工作的网站 谷歌搜索没有显示任何内容 这让我认为这不是一个常见问题 预先感谢您的任何见解
  • 如何使用 iTextSharp 设置 PDF 段落或字体行高?

    如何使用 iTextSharp 更改 PDF 字体或段落的行高 排版中的行距称为行距 如果可以使用行间距 则可以使用 Paragraph Leading 或 Paragraph LeadingMultiplier 看http itextsh
  • 单击 div 中的图像时如何翻转该 Div?

    好吧 我对编写 Javascript 知之甚少 我可以对其进行一些编辑 并且涉足了 CSS3 动画 我将向您展示我正在努力实现的目标 然后在下面进行解释 网站布局将是这样的 https i stack imgur com RMb4R jpg
  • CSS 3.0 用户选择属性替换

    我正在使用 CSS 3 0 它抱怨 用户选择 属性不存在 有谁知道合适的替代品或替代品是什么 user select is 回到规范 https drafts csswg org css ui 4 propdef user selectCS
  • CSS 转换的中断对于相同的属性值不起作用

    I ve 回答了一个问题 https stackoverflow com a 43372990 3162554关于如何在悬停子元素时启动动画 然后保留应用的样式 直到取消悬停父元素 然而 我在我提出的解决方案中发现了一个我无法解释但我想理解
  • 阻止 div 容器调整大小

    我的 html 页面中有两列 一列向右浮动 另一列向左浮动 我已将两个容器的高度设置为 100 将两个容器的宽度设置为 50 我希望这两个容器适合中间的窗户 当用户水平调整窗口大小时 我不希望内容调整大小 我怎样才能做到这一点 Thanks
  • 如何在 Bootstrap 4 中隐藏和替换 navbar-toggler-icon?

    如何隐藏和替换 Bootstrap 4 中的导航栏切换图标 现在 下面的代码只是将 X 放在汉堡菜单下方
  • CSS隐藏滚动条,但元素可滚动

    我有一个名为 items 的元素 元素内的内容更长 比元素高度 我想让它可滚动但隐藏滚动条 我该怎么做呢 div class left side div class items style display block width 94 ma
  • 为什么 webkit 径向渐变在 Safari 中不起作用?

    这在 Chrome 中有效 但在 Safari 中无效 background webkit radial gradient center ellipse cover fdfdfd d3d3d3 我该如何修复 Safari 的问题 它甚至在
  • iOS 中输入字段显示不同大小

    我有一个带有背景和固定宽度 高度的输入字段 它在我桌面上的所有浏览器中看起来都很好 但由于某种原因 它看起来更大iPad and iPhone 我在 CSS 中尝试了一些技巧 但到目前为止没有任何效果 width 120px importa
  • 用css制作一个加号[重复]

    这个问题在这里已经有答案了 我有一个模型 用于制作看起来非常简单的加号 然而 我的 CSS 技能并不是很好 制作圆圈没什么大不了的 但在里面制作加号我似乎无法弄清楚 这就是我正在尝试做的事情 Mockup 这是我目前拥有的 到目前为止 这是
  • 从三行菜单到十字菜单的动画变换

    我有一个三行动画菜单 当您单击它时 它会切换为十字 首先 您会看到三条线变成一条线 然后切换到十字线 但我想跳过从三行到一行的步骤 我怎样才能做到这一点 这是小提琴http jsfiddle net adyocsm9 http jsfidd
  • 为什么只读输入字段无效

    考虑以下 html
  • 半流体布局 CSS/Html

    我有一个两列布局 其中右列的静态宽度为 350px 左列的宽度应填充页面的其余部分 或者至少这是我想要发生的事情 但不幸的是事实并非如此 看一下我的 css html http jsfiddle net CmJ7P http jsfiddl
  • 如何使用 javascript 将我的域名字母大写?

    假设我的域名是www hello com 如何使用 jQuery JavaScript 使浏览器的 URL 栏看起来像 www HELLO com 您无法更改浏览器地址栏中显示的内容 这是一项基本的安全功能 您可以使您的域名全部大写 并将页
  • chrome css 动画上的抖动

    尝试使用两个具有相同背景图像 svg 的居中 div 制作一个从中心淡入图像的 css 动画 并为其宽度和背景位置设置动画 问题是 在 chrome 上 存在严重的抖动问题 也许是 chrome 循环执行动画步骤 而不是同时执行它们 这是j

随机推荐

  • limitTo 在 AngularJs 的 ng-repeat 中不起作用

    我正在为某些应用程序编写一些代码 我想限制聊天中的消息 this limitM 10 scope msgsCount contains the number of messages
  • 将复杂类型作为数据传递给 jquery ajax post

    我的数据模型类如下所示 DataContract public class Order DataMember public string Id get set DataMember public string AdditionalInstr
  • CF 标志的行为难以理解

    假设有一段代码 mov al 12 mov bl 4 sub al bl 在这种情况下 CF 0 标志 但在我看来它应该等于 1 因为减法运算是在加法运算上实现的 并且处理器不知道我们将其作为输入提供什么 无论是有符号还是无符号数字 它只是
  • 如何告诉窗体在关​​闭时不要释放特定控件?

    我想为我的子类表单对象编写一个函数 该函数必须关闭窗体并返回该窗体上的控件 以便我可以将其放在另一个窗体上 我无法阻止控件被处置 我认为使用 this Controls Remove someControl 从控件集合中删除它足以阻止它处置
  • Spring security中每个请求不同的csrf令牌

    我在用
  • 具有重载赋值的嵌套派生类型

    我有一个派生类型 wrapper 包含其他派生类型 over 对于后者 赋值运算符已被重载 由于派生类型的分配按默认组件方式发生 因此我希望分配两个实例wrapper将调用重载分配over在某一点 然而 使用下面的程序 情况似乎并非如此 仅
  • SelectById2 的指针标注

    我正在尝试将我在 VBA 中编写的一些代码移植到 Python 中以控制 Solidworks 特别是自动化草图编辑 我在 Python 中使用 Solidworks SelectById2 时遇到问题 在 VBA 中 以下代码工作正常 P
  • PHP continue 函数内

    这可能非常微不足道 但我一直无法弄清楚 这有效 function MyFunction Do stuff foreach x as y MyFunction if foo bar continue Do stuff echo output
  • Java 并发:Synchronized(this) => 和 this.wait() 和 this.notify()

    我非常感谢您帮助理解以下内容的 并发示例 http forums sun com thread jspa threadID 735386 http forums sun com thread jspa threadID 735386 pub
  • 计算时间跨度的最佳方法是什么

    在我的 C 程序中 我的要求是计算 foreach 循环内的业务逻辑执行的时间跨度 我必须存储时间跨度 我正在使用以下代码 for int i 0 i lt 100 i DateTime start DateTime Now Busines
  • Docker 信任初始化

    当对 tuf 上的公证人对 docker 内容信任的初始信任初始化时 我了解了 TUF 公证人和内容信任的工作原理 但我不清楚的是 最初的信任是如何建立的 我怎么知道第一次拉取没有受到损害并且初始 root json 是值得信赖的 例如 如
  • 使用foldr实现zip

    我目前正在阅读 Real World Haskell 的第 4 章 我正在努力理清思路根据foldr 实现foldl http book realworldhaskell org read functional programming ht
  • 寻找一种非“蛮力”算法来删除矩形集合的相交区域

    我有一个 n 大小的矩形集合 其中大部分彼此相交 我想删除相交并将相交的矩形减少为较小的非相交的矩形 我可以轻松地暴力破解解决方案 但我正在寻找一种有效的算法 这是一个可视化 原来的 处理 理想情况下 方法签名如下所示 public sta
  • 如何解决以下 SDK 版本报告了严重问题:com.google.android.gms:play-services-safetynet:17.0.0

    我在发布应用程序时收到此警告 play services safetynet 的开发商 com google android gms play services safetynet 已报告严重 版本 17 0 0 存在问题 在发布新版本之前
  • C# 中的 N 体模拟

    我正在尝试使用 Runge Kutta 4 或 Velocity Verlet 集成算法在 C 中实现 N 体模拟 在我转向更多数量的粒子之前 我想通过模拟地球绕太阳的轨道来测试模拟 但是 由于某种原因 我得到的不是椭圆轨道 而是一个奇怪的
  • 从 C# NUnit 在多个浏览器中依次运行 Selenium 测试

    我正在寻找推荐 最好的方法来使 Selenium 测试在多个浏览器中相继执行 我正在测试的网站不大 所以我还不需要并行解决方案 我有常用的测试设置方法 SetUp TearDown and Test 当然 SetUp 会实例化一个新的ISe
  • 使用 GeoFire 按半径查询位置

    我知道这是一个基本问题 但我仍然遇到很多麻烦 我有一个 Firebase 数据库存储社区事件 每个事件节点都有一个地理位置节点 使用 GeoFire 创建 称为活动地点 见下面的截图 使用 GeoFire 和 javascript 我将如何
  • 如何在图像上绘画并将该图像保存到 Android 中?

    我是画布新手 我想使用我已保存的图像并希望在该图像上进行一些绘制 之后我想保存它 我知道使用 Canvas 这是可能的 我可以在图像上绘画 但是当我要存储该图像时 它只保存了绘画 不是绘画的图像 那么有人可以告诉我如何在图像上绘画并保存该图
  • android ndk-构建错误

    我正在尝试为 Android 构建 tesseract 我已将 tesseract 放入示例文件夹中 C Android NDK android ndk r8 samples tesseract之内tesseract我有的文件夹tesser
  • CSS 网格并指定多个区域

    我需要一些元素重叠 我还想通过区域名称而不是行 列来指定内容 因为这样可以更好地阅读 我一生都无法理解如何按照 MDN 示例指定多个网格区域 或者 如果它甚至可能 文章建议它根据语法示例是可能的 但它实际上是如何工作的 没有任何线索 问题示