对齐 CSS 网格中的列

2024-01-11

我应该设置哪些 CSS 属性,以便各列相互缠绕,忽略水平相邻列的高度?

失败的尝试

我正在尝试这样做display: grid,但它的行为不符合我的要求。一个例子:

header {
    height: 2.0rem;
    background: PeachPuff;
}
footer {
    height: 2.0rem;
    background: PaleGreen;
}

header,
footer,
section.app-column {
    padding: 1.0rem;
}

section#main section#app-column-primary {
    grid-area: primary;
    height: 5.0rem;
    background: Cyan;
}
section#main section#app-column-secondary {
    grid-area: secondary;
    height: 15.0rem;
    background: Thistle;
}
section#main section#app-column-tertiary {
    grid-area: tertiary;
    height: 10.0rem;
    background: Coral;
}

section#main {
    display: grid;
    grid-template-columns: repeat(3, 10.0rem);
    grid-row-gap: 0.2rem;
    grid-column-gap: 0.5rem;
}

section#main {
    content: "This application requires a display at least 200 pixels wide.";
}

@media(min-width: 200px) {
    section#main {
        grid-template-areas:
            "primary"
            "secondary"
            "tertiary";
    }
}

@media(min-width: 350px) {
    section#main {
        grid-template-areas:
            "primary secondary"
            "tertiary .";
    }
}

@media(min-width: 520px) {
    section#main {
        grid-template-areas:
            "primary secondary tertiary";
    }
}
<header>Header ipsum, dolor sit amet.</header>
<section id="main">
    <section class="app-column" id="app-column-primary">
        Primary app column
    </section>
    <section class="app-column" id="app-column-secondary">
        Secondary app column
    </section>
    <section class="app-column" id="app-column-tertiary">
        Tertiary app column
    </section>
</section>
<footer>Footer ipsum, dolor sit amet.</footer>

3 列和 1 列的正确结果

这就是我需要的三列("primary secondary tertiary") 和一列 ("primary" "secondary" "tertiary")布局。

2 列不需要的布局

但两列布局有tertiary列从下面开始secondary column:

2 列所需的布局

我想要的是tertiary列放置忽略secondary列,因为它们根本不会重叠:

我怎样才能用 CSS 做到这一点?是display: grid适合这个吗?我应该使用display: flex或者不同的东西(如果是这样,我到底需要什么 CSS 属性)?


而不是这个:

@media(min-width: 350px) {
    section#main {
        grid-template-areas:
            "primary secondary"
            "tertiary .";
    }
}

...创建一个 2x2 网格,如下所示:

[ primary ] [ secondary ]

[tertiary ] [ empty space ]

...这正是您所显示的问题:

Do this:

@media(min-width: 350px) {
    section#main {
        grid-template-areas:
            "primary secondary"
            "tertiary secondary";
    }
}

jsFiddle 演示 https://jsfiddle.net/5jeknmqw/

header {
  height: 2.0rem;
  background: PeachPuff;
}

footer {
  height: 2.0rem;
  background: PaleGreen;
}

header,
footer,
section.app-column {
  padding: 1.0rem;
}

section#main section#app-column-primary {
  grid-area: primary;
  height: 5.0rem;
  background: Cyan;
}

section#main section#app-column-secondary {
  grid-area: secondary;
  height: 15.0rem;
  background: Thistle;
}

section#main section#app-column-tertiary {
  grid-area: tertiary;
  height: 10.0rem;
  background: Coral;
}

section#main {
  display: grid;
  grid-template-columns: repeat(3, 10.0rem);
  grid-row-gap: 0.2rem;
  grid-column-gap: 0.5rem;
}

section#main {
  content: "This application requires a display at least 200 pixels wide.";
}

@media(min-width: 200px) {
  section#main {
    grid-template-areas: "primary" "secondary" "tertiary";
  }
}

@media(min-width: 350px) {
  section#main {
    grid-template-areas: "primary secondary" "tertiary secondary";
  }
}

@media(min-width: 520px) {
  section#main {
    grid-template-areas: "primary secondary tertiary";
  }
}
<header>Header ipsum, dolor sit amet.</header>
<section id="main">
  <section class="app-column" id="app-column-primary">
    Primary app column
  </section>
  <section class="app-column" id="app-column-secondary">
    Secondary app column
  </section>
  <section class="app-column" id="app-column-tertiary">
    Tertiary app column
  </section>
</section>
<footer>Footer ipsum, dolor sit amet.</footer>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对齐 CSS 网格中的列 的相关文章

  • 无法正确显示行

    我应该在这个问题的开头说我完全没有 html css javascript 背景 所以请对我宽容点 如果我使用了错误的术语或者问了一个愚蠢的问题 没有提供足够的信息 请抱歉 我正在尝试让一个可扩展的表工作 通过阅读论坛线程 教程 将 nex
  • 使用其innerHTML查找元素

    请看一下这个 DOM 树 div div span Home1 span div span Home2 span span Home3 span div 现在假设我有一个场景 我以某种方式获得了第一个跨度的innerHTMLHome1 是否
  • 如何将 HTML 转换为 Markdown?

    我有一个类似 stackoverflow 的网站 有一个文本区域 人们可以在其中写答案 我用这个 PHP 库 http parsedown org 转换降价 我的意思是我使用该函数来转换 italic to i italic i inclu
  • save_and_open_page 已停止提供我的 CSS

    我的测试设置工作得很好 每当我打电话时 都能提供正确格式的 css 页面save and open page从测试中 然后 我设置了一些 javascript 测试 并对我的设置进行了一些更改 抱歉 我无法详细说明所有内容 我没有足够详细地
  • VBA 完成 Internet 表单

    我正在寻找将 Excel 中的值放入网页的代码 Sub FillInternetForm Dim IE As Object Set IE CreateObject InternetExplorer Application IE naviga
  • 使用本地存储在从另一个表保存的 HTML TABLE 中打印 JSON,以便我在另一个页面上打印我的表

    在我的作业中 我必须使用用户输入中的数据并将数据保存在本地存储中 我必须以水平表格式将这些数据从本地存储打印到其他页面 为此 我编写了用于用户输入并将数据保存在本地存储中的代码 div p p div
  • html 电子邮件内的背景图像 css - Gmail 不支持

    我想向我的用户发送如下所示的带有背景图像 css 的 html 正文电子邮件 div style width 500px height 1000px background color black background image none
  • 在 ember-cli 中安装 Foundation 5

    我对 ember 相当陌生 对构建工具也很陌生 我目前正在使用通常的基础安装以及基础 cli 和指南针来编译我的 css 这有点痛苦 并且对于团队工作来说非常糟糕 我认为用 Bower 安装文件并使用会更好ember cli compass
  • div 中的中心文本?

    我有一个div 30px高和500px宽的 这div可以包含两行文本 一行在一行 并相应地设置样式 填充 但有时它只包含一行 我希望它居中 这可能吗 要水平居中 请使用text align center 要垂直居中 只能使用vertical
  • Sass:@use 出错,未定义变量

    我正在使用 Sass 并且想要使用 use关键字而不是 import 因为 import有很多问题 另外只有dart sass支持这个功能 我将node sass改为dart sass 然而 问题出现了 我原来的代码 import carb
  • Bootstrap:如何将按钮组对齐在中心(垂直)

    在下面的代码中
  • 如何在其他div id的悬停中使用div显示块

    如何打开div悬停时标记href tag 这是我在悬停 href 标签上显示 div 标签的代码 Services is id of href tag Services is id of div tag Service hover Serv
  • 转义 h 轮廓

    因此 我一直在尝试找出在被较低级别的标题吸引后添加内容的最佳方法是什么 section h1 Title of Section h1 h2 Related 1 h2 h2 Related 2 h2 p I NEED THIS TO BE P
  • HTML W3C 有效元素 - DIV 在 TD 内有效吗?

    我正在和一位同事争论 但找不到证据证明我们俩都是对的 我之前已经看过给定标签的有效元素列表 但只是无法再次找到它 有人能指出我正确的方向吗 我对 XHTML 很好奇 但分歧具体在于 DIV 标签在 HTML 4 01 中的 TD 标签内是否
  • 如何通过单击链接来更改 div 的内容?

    这是我的网页的 修改后的 jsfiddle 它还有很多 而且定位是正确的 与此相反 http jsfiddle net ry0tec3p 1 http jsfiddle net ry0tec3p 1 a href class btn1 st
  • 如何使用角度材料在具有可扩展行的表格中创建嵌套垫表

    我有以下数据 id c9d5ab1a subdomain wing domain aircraft part id c9d5ab1a info mimetype application json info dependent parent
  • 具有 100% 高度行和 Internet Explorer 9 的表格

    我有以下示例 div style height 150px background color AAAAFF div
  • 表单发布请求并存储收到的数据

    我有一个非常简单的表单 在提交时发出发布请求
  • 使用 CSS 折叠和展开元素

    我正在尝试构建一个页面 加载时仅可见标题 并且 当用户单击标题时 每个标题下方的表格会在隐藏和显示状态之间切换 我的限制是只能在 CSS 中执行此操作 这是我到目前为止想到的 https jsfiddle net Argoron c1ypx
  • css3按钮背景颜色无限过渡

    有没有办法仅使用 css3 使按钮的背景颜色从灰色渐变为蓝色 然后又回到灰色 一个很好的例子是默认操作按钮是可可 我知道这可以在 javascript 中完成 但我宁愿只使用 css 来完成此操作 您好 我已经通过 CSS3 动画制作了按钮

随机推荐

  • redirect_uri 的参数值无效:缺少方案:/auth/google_auth_code/callback

    edit 这是一个最小可行的项目 https github com rednebmas google auth code test 似乎是护照谷歌错误 你可能会在这里看到它 https github com jaredhanson pass
  • 重新定义 Python 内置数据类型

    是否可以重新定义括号 使用哪个对象 我可以子类化list对象 但如何使解释器使用我的子类代替内置列表对象 是否可以 我很确定我在这个问题上使用了错误的术语 请随意编辑 gt gt gt class mlist list def init s
  • QueryDSL / JPQL:如何构建连接查询?

    我尝试通读 QueryDSL 文档 但仍然很困惑 我习惯于编写大量 SQL 但这是我第一次真正尝试使用 QueryDSL 和 JPQL JPA2 我有以下实体 Entity public class Provider implements
  • Android - VideoView 需要按 BACK 两次才能退出

    我有一个显示不同视频文件的活动 当我单击视频文件时 我会进入另一个 Activity 其中 VideoView 会播放视频 我的问题是 当我想退出此活动并返回到上一个活动时 我应该单击两次后退按钮才能返回 如果我只单击一次 视频会再次开始播
  • 如何在 CodeIgniter 模型中使用 ON DUPLICATE KEY UPDATE?

    我有一个 CodeIgniter PHP 模型 我想将一些数据插入数据库 然而 我在 原始 SQL 查询中设置了这个 ON DUPLICATE KEY UPDATE duplicate duplicate 1 我正在使用 CodeIgnit
  • daemonset 不创建任何 pod

    我正在尝试使用 Kubernetes DaemonSets 但一点运气都没有 我已经寻找解决方案但无济于事 我希望这里有人可以提供帮助 首先 我见过这张票 https stackoverflow com questions 34818198
  • 从数组中获取大小为 n 的所有组合的算法(Java)? [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 现在我正在尝试编写一个函数 它接受一个数组和一个整数 n 并给出每个大小 n 组合的列表 因此是 int 数组的列表 我
  • 获取报警信息

    我正在实现一个应用程序 其中必须显示警报信息 日期 时间 如果可用 有谁知道如何获取报警信息吗 非常感谢 结果 最后 我可以通过上面Curious的回答来检索警报信息 此外 当我在 packages apps 中探索 Deskclock 应
  • ipad 应用程序异常退出并显示信号 11:分段错误:11

    我的应用程序异常退出 信号为 11 我不知道这意味着什么 没有崩溃日志 调试器也没有显示错误 该应用程序刚刚消失 我得到以下日志 Apr 27 21 31 31 unknown Apollo 1408
  • 如何在编译时保存指向成员的指针?

    考虑下面的代码 template
  • 反应选择禁用选项

    我在禁用 React Select 元素内的大型列表中的某些选项时遇到问题 我有大约 6 500 个选项被加载到选择中 起初我遇到了搜索功能滞后的问题 但后来我开始使用react select fast filter options来解决这
  • 在 PHP 中写入文本文件时换行符不起作用

    我有以下测试脚本 但是 当运行并使用记事本打开时 数据以单行形式返回 没有中断 如下所示 Floppy Jalopy 疯狂盒子 Pointy Pinto 疯狂盒子 我找不到 疯狂盒子 的合适字符 但它确实是一个疯狂的盒子 是什么赋予了 最好
  • 仅在使用 cx_freeze 时出现 UnicodeDecodeError

    我收到错误 UnicodeDecodeError ascii codec can t decode byte 0xa0 in position 7338 ordinal not in range 128 一旦我尝试在使用 cx freeze
  • 在项目中声明全局变量并在xslt中使用它

    对于 XSLT 方面的疑问 我会寻求您的指导 在我当前的项目中 需要创建许多 XSLT 文件 在这些转换中 执行的共同步骤很少 例如更改输入 xml 中元素值的大写 我当前在 XSLT 中使用以下代码 因此如果创建了 50 个 XSLT 则
  • F# 正向管道从 int 转换为 bigint

    我对 F 相当陌生 遇到了这种情况 希望有人能解释为什么我的编译器不喜欢这些代码 如果在 F 中我执行以下操作 let FloatToInt 10 0 gt int let IntToFloat 10 gt float 一切都很好 数字被转
  • Python 中基于字符串的枚举

    封装我正在使用的状态列表enum模块 from enum import Enum class MyEnum Enum state1 state1 state2 state2 state MyEnum state1 MyEnum state1
  • __attribute__((__interrupt__, no_auto_psv)) 是做什么的?

    void attribute interrupt no auto psv T1Interrupt void 5 Hz attribute 指令或宏来自 GCC 但是 interrupt and no auto psv不是 它特定于硬件 那么
  • 检测何时触发position:sticky 的事件

    我正在使用新的position sticky info http updates html5rocks com 2012 08 Stick your landings position sticky lands in WebKit 创建类似
  • 如何创建 Java 自定义 Web 控件?

    这个问题最初出现在我的脑海中 我可以在 Servlet 中使用 AWT 控件吗 这将显示我对这个问题的无知 我是 JAVA 技术的新手 但经过一些阅读后 我似乎了解 AWT 控件直接连接操作系统 GUI 元素 因此无法在 Servlet 中
  • 对齐 CSS 网格中的列

    我应该设置哪些 CSS 属性 以便各列相互缠绕 忽略水平相邻列的高度 失败的尝试 我正在尝试这样做display grid 但它的行为不符合我的要求 一个例子 header height 2 0rem background PeachPuf