如何让背景图像跨越网格布局

2024-03-03

我有一个网格布局,假设第一行有 2 行、2 列,第二行有 3 列。它们之间的网格间隙为 10px。 给每个网格一个背景图像是没有问题的。但是,如果我希望它们都具有相同的背景图像,该背景图像从左上角网格开始并继续/跨越直到右下角网格。所有网格上都有一张大背景图像,仅由白色网格间隙隔开。

html,
body {
  height: 100%;
}
.grid {
  display: grid;
  height: 100%;
  grid-template-columns: repeat(6, 1fr);
  grid-template-rows: repeat(2, 1fr);
  grid-gap: 10px;
}

.grid_cell_one {
  grid-column: 1 / span 3;
  grid-row: 1 / span 1;
  background-image: url("https://cdn.pixabay.com/photo/2017/01/08/21/11/wood-1963988__340.jpg");
}

.grid_cell_two {
  grid-column: 4 / span 3;
  grid-row: 1 / span 1;
  background-image: url("https://cdn.pixabay.com/photo/2017/01/08/21/11/wood-1963988__340.jpg");
}

.grid_cell_three {
  grid-column: 1 / span 2;
  grid-row: 2 / span 1;
  background-image: url("https://cdn.pixabay.com/photo/2017/01/08/21/11/wood-1963988__340.jpg");
}

.grid_cell_four {
  grid-column: 3 / span 2;
  grid-row: 2 / span 1;
  background-image: url("https://cdn.pixabay.com/photo/2017/01/08/21/11/wood-1963988__340.jpg");
}

.grid_cell_five {
  grid-column: 5 / span 2;
  grid-row: 2 / span 1;
  background-image: url("https://cdn.pixabay.com/photo/2017/01/08/21/11/wood-1963988__340.jpg");
}
<div class="grid">
  <div class="grid_cell_one">
  </div>
  <div class="grid_cell_two">
  </div>
  <div class="grid_cell_three">
  </div>
  <div class="grid_cell_four">
  </div>
  <div class="grid_cell_five">
  </div>
</div>

关于想法是要考虑background-attachement:fixed但背景将不再跟随滚动:

html,
body {
  height: 100%;
  margin:0;
}

.grid {
  display: grid;
  height: 100%;
  grid-template-columns: repeat(6, 1fr);
  grid-template-rows: repeat(2, 1fr);
  grid-gap: 10px;
}

.grid>* {
  background-image: url("https://cdn.pixabay.com/photo/2017/01/08/21/11/wood-1963988__340.jpg");
  background-size: cover;
  background-repeat: no-repeat;
  background-attachment: fixed;
}

.grid_cell_one {
  grid-column: 1 / span 3;
  grid-row: 1 / span 1;
}

.grid_cell_two {
  grid-column: 4 / span 3;
  grid-row: 1 / span 1;
}

.grid_cell_three {
  grid-column: 1 / span 2;
  grid-row: 2 / span 1;
}

.grid_cell_four {
  grid-column: 3 / span 2;
  grid-row: 2 / span 1;
}

.grid_cell_five {
  grid-column: 5 / span 2;
  grid-row: 2 / span 1;
}
<div class="grid">
  <div class="grid_cell_one">
  </div>
  <div class="grid_cell_two">
  </div>
  <div class="grid_cell_three">
  </div>
  <div class="grid_cell_four">
  </div>
  <div class="grid_cell_five">
  </div>
</div>

另一个想法是考虑网格容器上的多个背景,您将用白色(或背景中使用的任何颜色)填充间隙。

为网格项添加透明层以更好地说明

html,
body {
  height: 100%;
  margin:0;
}

.grid {
  display: grid;
  height: 100%;
  grid-template-columns: repeat(6, 1fr);
  grid-template-rows: repeat(2, 1fr);
  grid-gap: 10px;
  background: 
    /*middle horizontal line*/
    linear-gradient(#fff,#fff) center/100% 10px,
    /*top vertical line*/
    linear-gradient(#fff,#fff) top center/10px 50%,
    /*bottom lines*/
    linear-gradient(#fff,#fff) calc(1*100%/3 - 3px) 100%/10px 50%,
    linear-gradient(#fff,#fff) calc(2*100%/3 + 3px) 100%/10px 50%,
    /*main background*/
    url("https://cdn.pixabay.com/photo/2017/01/08/21/11/wood-1963988__340.jpg") center/cover;
  background-repeat:no-repeat;
}

.grid>* {
  background: rgba(255, 255, 0, 0.2);
  /*to illustrate*/
}

.grid_cell_one {
  grid-column: 1 / span 3;
  grid-row: 1 / span 1;
}

.grid_cell_two {
  grid-column: 4 / span 3;
  grid-row: 1 / span 1;
}

.grid_cell_three {
  grid-column: 1 / span 2;
  grid-row: 2 / span 1;
}

.grid_cell_four {
  grid-column: 3 / span 2;
  grid-row: 2 / span 1;
}

.grid_cell_five {
  grid-column: 5 / span 2;
  grid-row: 2 / span 1;
}
<div class="grid">
  <div class="grid_cell_one">
  </div>
  <div class="grid_cell_two">
  </div>
  <div class="grid_cell_three">
  </div>
  <div class="grid_cell_four">
  </div>
  <div class="grid_cell_five">
  </div>
</div>

您可以检查此链接以获取有关所使用的不同值的更多详细信息:在线性渐变上使用带有背景位置的百分比值 https://stackoverflow.com/q/51731106/8620333

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

如何让背景图像跨越网格布局 的相关文章

随机推荐

  • 如何使用 xlrd 版本 1.1.0 读取 Excel 中的字体和背景颜色

    实际上我使用的是xlrd模块1 1 0版本 但我不知道如何读取单元格属性 如背景颜色 字体以及单元格是否被锁定 我尝试使用 import xlrd book xlrd open workbook sample xls formatting
  • 如何为我的 C# XNA 游戏制作 GUI? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我的游戏有基本功能 可以通过命令行玩 但我想在它上面放一个 GUI 它是一款使用 C 和 XNA 框架编写的平台游戏 我用谷歌搜索并找
  • Tridion DTAP 澄清 - 我需要多少个内容交付设置?

    我询问了 Tridion DTAP 的开发人员设置 开发 测试 验收和生产 在另一个问题中 https stackoverflow com questions 11166754 proper dtap setup for content d
  • 使用 Python + Pylons 进行错误处理

    使用 Python Pylons 处理错误的正确方法是什么 假设用户通过表单设置密码 当通过控制器传递给模型类时 会抛出错误 因为密码太短 应如何处理该错误 以便在网页上显示错误消息 而不是整个脚本终止于错误页面 控制器本身是否应该有任何错
  • endl 和 cout 后的行距?

    我注意到在下面的代码中 cout lt lt Please enter your number cin gt gt Number cout lt lt Is this spaced C 命令窗口中的输出自动将 Is this spaced
  • 如何通过 Javascript 访问元素的 focus/hover/visited CSS 属性?

    我现在可能很累并且想法很奇怪 但我根本找不到如何检索元素的聚焦 悬停或访问状态中定义的 CSS 属性的值 目标是使用 Javascript 中的值 重要的 I 不需要获取聚焦 悬停 访问的元素 我想访问某些任意元素的值在 DOM 中为以下状
  • 如果省略 input_shape,Keras 模型的结构是什么?为什么它的性能更好?

    我省略了input shape错误地出现在我的 Keras 模型的第一层中 最终我注意到了这一点并修复了它 我的模型的性能急剧下降 查看有和没有的模型结构input shape 我发现性能更好的模型的输出形状为multiple 此外 将其绘
  • 子功能在 HTA 中不起作用

    我不知道为什么 但我的子功能不起作用 我以为我已经遵循了它应该如何工作 但它只会导致一个错误 声称我的函数未定义
  • 如何反转字符串中两个单词的顺序?

    我有一个像这样的字符串 a Mike Tree 我想将其反转为 Tree Mike 有什么功能可以做到这一点吗 将绳子分成两根绳子 翻转它们 然后重新连接它们 或者 使用正则表达式 a s 2 1 g
  • r 中的动态变量命名

    structure list Metrics structure c 1L 2L 3L 4L 5L 6L 1L 2L 3L 4L 5L 6L 1L 2L 3L 4L 5L 6L 1L 2L 3L 4L 5L 6L Label c LINES
  • 在未越狱的 iOS 设备上启用/禁用 Wifi

    我的内部应用程序需要这个 我想在 ios 设备上切换 wifi 任何框架都可用 我尝试了以下代码 但它没有为我提供任何帮助 这不会改变我的 wifi 设置 Class BluetoothManager objc getClass Bluet
  • 更改index.html nginx kubernetes部署

    我有这样的部署 我能够在我的一个 Pod 上编辑索引页面 但如何将其提交到部署映像 因此 当我扩展应用程序时 所有新的 Pod 都将具有相同的图像并编辑了索引 这对我有用 apiVersion v1 kind Pod metadata na
  • 使用 Id 以外的属性查询 DocumentDB

    我想查询 DocumentDB 数据库中的文档 我想使用 LINQ 处理 DocumentDB 查询并想要查询 facebookUsername 字段 如果我使用下面的代码来查询标准 Id 字段 它工作正常 但是当我尝试使用 faceboo
  • PHP 中是否可以声明静态方法和非静态方法?

    我可以将对象中的方法声明为静态方法和非静态方法 并且与调用静态方法的名称相同吗 我想创建一个具有静态方法 send 和调用静态函数的非静态方法的类 例如 class test private text public static funct
  • 如何使用callkit获取来电号码

    如何使用 Call Kit 框架以编程方式获取来电电话号码 我尝试使用 cxcallobserver 类 但没有用 任何建议最有帮助 使用 CallKit 的呼叫阻止和识别功能 iOS 10 中的新增功能 时 要阻止或识别的电话号码会在来电
  • 不在异步方法中等待任务的注意事项

    我正在开发一个 Web API 项目 该项目使用 Azure 的托管缓存服务将数据库结果缓存在内存中 以缩短响应时间并减少数据库的重复流量 当尝试将新项目放入缓存时 有时会抛出特定于缓存的异常 代码为DataCacheErrorCode R
  • 如何使用 Paramiko 运行 sudo? (Python)

    我尝试过的 invoke shell then channel send su然后发送密码导致不是root invoke shell 进而channel exec command导致 通道已关闭 错误 transport open sess
  • python * 运算符的正确名称?

    操作员的正确名称是什么 as in function args 解压 解压 还有别的吗 在 Ruby 和 Perl 6 中 这被称为 splat 我认为大多数人 如果你这么称呼的话 那些社区会明白你的意思 The Python教程 docs
  • SQL Server 2000 - 调试死锁

    我正在寻找有关如何调试和解决 SQL Server 2000 数据库中的死锁问题的建议 有人建议我使用跟踪标志 1024 和 3605 我发现它们可以提供以下信息 1024 此跟踪标志返回参与死锁的锁的类型以及受影响的当前命令 3605 此
  • 如何让背景图像跨越网格布局

    我有一个网格布局 假设第一行有 2 行 2 列 第二行有 3 列 它们之间的网格间隙为 10px 给每个网格一个背景图像是没有问题的 但是 如果我希望它们都具有相同的背景图像 该背景图像从左上角网格开始并继续 跨越直到右下角网格 所有网格上