如何解释“grid-template-rows: auto auto 1fr auto”?

2024-02-18

最近,我使用创建了一个布局CSS grid https://www.w3.org/TR/css-grid-1/。虽然这很有效,但我对它的工作原理感到困惑。具体来说,我对这条线感到困惑grid-template-rows: auto auto 1fr auto;.

这里最终发生的是页眉和页脚根据内容调整大小,这是有道理的,因为它们跨越了页面的宽度。文章本身根据其内容调整大小。但是,“标题”和“导航”被分开,标题根据内容调整大小,而导航占据其余空间。

如果我用过grid-template-rows: auto auto auto auto;相反,标题和导航将共享相同的间距,这不是我想要的。

怎么样auto auto 1fr auto解释以便它给我调整大小,使标题占据所需的最小空间,而导航占据其余空间?在这种情况下“fr”和“auto”如何交互?

main {
    display: grid;
    grid-template-columns: 10rem auto;
    grid-template-rows: auto auto 1fr auto;
    grid-template-areas: "header header" "title article" "nav article" "footer footer";
}
    
header {
  grid-area: header;
  background: lightblue;
}

div {
  grid-area: title;
  background: orange;
}

nav {
  grid-area: nav;
  background: pink;
}

article {
  grid-area: article;
  background: yellow;
}
  
footer {
  grid-area: footer;
  background: lightblue;
}
<main>
<header>This is the header</header>
<div>This is the title</div>
<nav>This is the nav</nav>
<article>
  This is the article. This is the article. This is the article. This is the article.
  This is the article. This is the article. This is the article. This is the article.
  This is the article. This is the article. This is the article. This is the article.
  This is the article. This is the article. This is the article. This is the article.
  This is the article. This is the article. This is the article. This is the article.
  This is the article. This is the article. This is the article. This is the article.
</article>
<footer>This is the footer</footer>
</main>

作为一个经验法则,

  • fr是贪婪的,
  • auto is shy.

当浏览器渲染你的网格时,first它计算了必要的尺寸auto元素 - 他们都得到了他们可以忍受的最低限度 - 并且then,在知道所有其他大小后,它会将剩余空间分配给fr细胞。分配的工作方式很明显:将数字相加,切分蛋糕,给每个人所要求的金额。就像,你有1fr, 1fr, 3fr and 2fr在定义中 - 数字加起来为7,因此剩余的空间将被切成7等份,然后每个人都得到自己的份额。

分割水平空间

记住这一点,网格将成为你最好的朋友:

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

如何解释“grid-template-rows: auto auto 1fr auto”? 的相关文章

  • 将较新版本的 WebKit 嵌入 Android 应用程序

    我正在使用 Web 技术开发 Android 应用程序 CSS 转换 对于应用程序的功能非常重要 因为它们负责滚动和滑动页面 非常缓慢 根据互联网上找到的信息 CSS 过渡不是硬件加速的 除非进行 3 维转换 我发现很多文章说我应该放置 w
  • 在 Chrome 中,应用于包含图像的锚点的轮廓高度不正确

    对于我正在开发的网站 我希望当链接聚焦 悬停 活动时 链接周围会出现虚线轮廓 我希望文本和图像链接发生这种情况 我遇到的问题是 虽然我的代码在 Firefox 和 IE 中运行良好 但在 Chrome 7 0 517 41 中 虚线轮廓与我
  • 图像下方不需要的边距

    我有一个图像和一个 div 我想将其放置在其下方 这是小提琴 http jsfiddle net d3Mne 1 http jsfiddle net d3Mne 1 问题是两者之间存在差距 此下边距仅出现在图像中 有什么办法可以去除吗 Se
  • 这个 CSS 选择器是什么? [类* =“跨度”]

    我在 Twitter Bootstrap 中看到了这个选择器 show grid class span background color eee text align center border radius 3px min height
  • 使用 PHP 将 class="active" 添加到活动页面

    动态标头 CSS 类更改为活动使用 PHP 目录 我想要的班级 li 在活动目录下更改标签 现在 每个指南都向我展示了当您的页面等于它时如何执行此操作 但我想更改 这 li li 取决于我所在的目录 例如 如果说我在 http exampl
  • 如何实现右边缘倾斜的 div? [复制]

    这个问题在这里已经有答案了 我几天来一直在寻找使 div 的右边缘倾斜 45 度的代码 这是我特别想要得到的图像示例 似乎有很多 倾斜边缘 div 的示例 但我找不到任何具有特定右侧倾斜的示例 我花了很多时间试图改变其他人的代码 但结果却一
  • 响应式 CSS 图像锚点标签 - 图像地图样式

    我一直在开发一个响应式网站 并且在图像映射方面遇到了一些问题 图像映射似乎不适用于基于百分比的坐标 经过一番谷歌搜索后 我发现了一个 JS 解决方法 http mattstow com experiment responsive image
  • 可见性的替代方案:折叠在 IE 和 Chrome 上不起作用

    以下页面 table border 1 tr class cccc td one td tr table 仅适用于 Firefox IE 始终显示该行 而 Chrome 隐藏该行但显示其垂直空间 那么 如何仅使用 CSS 完全隐藏一行呢
  • 相对于变换元素的绝对定位元素位置

    我重新创建了我在模板中遇到的问题 有一个nav具有position relative 在 的里面nav有一个div有两个嵌套列表 其中一个列表的位置绝对固定在列表的底部nav 当div对其应用了变换 当 的时候div在绝对和相对定位的元素之
  • 在打印 CSS 上在每个页面周围绘制边框?

    打印时我需要在每个页面周围绘制边框 我最初是使用带有分页符的 div 来完成此操作 例如 media print contentContainer position inline height 98 width 100 top 0px le
  • c# 如何生成锦标赛括号 HTML 表

    所以我已经被这个问题困扰了三个星期 但我一生都无法弄清楚 我想做的是使用表格获得这种输出 演示 http www esl world net masters season6 hanover sc2 playoffs rankings htt
  • 跨浏览器:禁用输入字段的不同行为(文本可以/不能复制)

    我有一个被禁用的输入 html 字段 在某些浏览器 Chrome Edge Internet Explorer 和 Opera 中可以选择并复制文本 但至少在 Firefox 中这是不可能的 您可以通过在不同浏览器中执行以下代码来测试
  • 如何更改 Shiny 中 navbarPage 折叠的断点

    我想用shiny navbarPage collapsible TRUE 当在小屏幕上查看我的 Shiny 应用程序时 将导航元素折叠到菜单中 默认情况下 当浏览器宽度小于 940 像素时会触发折叠 有什么方法可以改变这一点 以便在稍大的浏
  • 由于 MIME 类型不受支持,拒绝应用样式

    我不断收到一条错误消息 指出 MIME 类型 text html 不可执行或不是受支持的样式表 MIME 类型 并且启用了严格的 MIME 检查 我的链接代码是
  • CSS3 box-shadow 用于类似重叠的 div

    我正在尝试用css3来实现这种效果 HTML 代码显然是这样的
  • html 和 body 元素的高度

    我一直在互联网上查找 min height 和 height 属性如何在 body 和 html 元素上工作 我在很多地方都看到过下面的代码 html height 100 body min height 100 上面的内容可以与其他一些
  • CSS 的波浪形状

    我正在尝试使用 CSS 重新创建此图像 我不需要重复它 这就是我开始的 但它只有一条直线 wave position absolute height 70px width 600px background e0efe3 div div 我认
  • 禁用引导列上的滚动

    我正在尝试禁用引导列上的滚动 这是我的代码 div class container fluid h 100 div class row h 100 div class col 4 h 100 bg dark fixed div div cl
  • 如何设置菜单按钮和菜单项的样式

    我尝试更改菜单按钮中的样式 我可以更改菜单按钮样式 但不能更改其菜单项 无论我尝试什么 菜单按钮内的菜单项都保持不变 menu button fx background color black menu button label fx ba
  • 如何在没有@import的情况下减少@import?

    我用的较少 从 Google PageSpeed 我了解到 使用 importCSS 文件中的内容会影响网站速度 所以我想排除任何 import来自我的 CSS 的东西 我有 2 个不同的样式表reset css and rebuild c

随机推荐

  • Ehcache 与静态地图缓存实现

    我有几个表 其中的条目很少 并且它们永远不会动态更改 所以我想将整个表缓存在内存中以减少数据库的负载 我可以通过静态地图并将地图填充到静态块中轻松实现这一点 我想知道 Ehcache hibernate 是否可以以更有效的方式实现同 样的功
  • 在 data.table 中多次使用 :=

    我经常发现自己使用以下方法进行一长串链式计算 在同一个数据表上 例如 像这样的东西 test data table 1 10 1 10 1 10 1 10 test V1 V1 2 test V2 V1 V2 test V3 V2 V3 t
  • 使用 jQuery / AJAX 解码 JSON

    我正在尝试使用 jQuery 解码 JSON 这是我得到的结果 例如一个班级 这里有一个学生 Students Name John Grade 17 TotalClass 17 TotalCount 1 这就是我所做的 j ajax typ
  • 哪些 Web 框架和语言的开发时间最短?

    我正在尝试将一些网络开发想法付诸实践 不幸的是 我将是唯一的开发人员 因此我专注于获得一个良好的可调试 可测试的设置 以便我可以快速开发应用程序 您会推荐哪些语言 开发风格和框架来实现快速开发 上次我检查 RoR 是下一件大事 但那是很久以
  • 无法单独构建 Flutter Web 和 Flutter Mobile 应用

    我正在构建一个 flutter 项目 并且在将 Web 和移动代码集成到单个项目中时遇到问题 我想在我的移动代码中使用 Moor 和 Moor FFI 但即使我的 web main dart 和移动代码 main dev dart 的入口点
  • 使用 Flask-Session 扩展在 Flask 会话中未设置密钥

    现在我正在使用 Flask 第三方库Flask 会话 https flask session readthedocs io en latest 我没有运气让会议正常进行 当我连接到我的网站时 出现以下错误 运行时错误 会话不可用 因为没有密
  • 是否可以使用迭代器将向量分成 10 个组?

    I have let my vec 0 25 collect
  • g++版本兼容性

    这是一个特定的海湾合作委员会相关问题 我有一个用 g 4 1 2 编译的库 我想提供给用户 用户可以在他们的代码中使用我们的 API 并链接我们的库来创建最终的可执行文件 我的问题与 g 版本兼容性有关 我们的一些用户使用 g 4 4 3
  • 如何在同一域中托管我的 API 和 Web 应用程序?

    我有一个Rails API 和一个Web 应用程序 使用express 彼此完全分开且独立 我想知道的是 我必须单独部署它们吗 如果我这样做 我怎样才能使我的 api 处于mysite com api和网络应用程序mysite com 我见
  • 如何在 Haskell 的 TChan 上的生产者/消费者情况下限制生产者?

    我们有一些东西在 TChan 上倾销值 然后由消费者处理这些值 但消费者无法跟上 因此当生产者在通道上倾倒大量内容时 我们会使用大量内存 但消费者却无法跟上 如果通道队列达到一定大小或某种程度 是否有一种直接的方法让生产者阻塞 以便我们可以
  • Xcode 调试器将 Swift 字典报告为空(po reports {})

    当我等到 Xcode 6 1 1 在该行之后遇到断点时 let metrics leading 15 0 size 44 0 然后输入po metrics调试器报告 延迟几秒后 这似乎是错误的 po metrics count报告2 哪个是
  • Map[..] 上的 Scala map() 比 mapValues() 慢得多

    在我编写的 Scala 程序中 我有一个scala collection Map将字符串映射到一些计算值 详细来说是Map String Double immutable Map String Double Double 我知道这很丑 应该
  • 如何修复此错误:“ImportError:DLL 加载失败:找不到指定的模块。”使用 PyQt5

    我目前使用 Python 3 6 8 和 PyQt5 我的程序运行良好 但在 Windows 更新后 一切都停止运行 这是错误 Traceback most recent call last File main py line 10 in
  • 从 Zingchart 中的 CSV 数据获取系列和值

    While creating mixed chart in Zingchart we can pass the type attribute values with values array But I m not sure when re
  • Ruby 中的时间范围?

    我想知道某个时间是否属于schedule或其他 就我而言 用于计算time is in 夜间时间表 or 正常时间表 我已经找到了这个解决方案 NIGHT 21 00 06 00 def night date date str date s
  • 如何在 Visual Studio Code 中将 python 作为主模块运行

    如何在 Visual Studio Code 中运行 python主模块 从命令行我会使用 m开关 比如 python m program py 我需要这个才能使相对导入工作 有什么我可以添加到的launch json file 如果这是不
  • git svn fetch '运行上下文时出错:软件导致连接中止...'

    几个月前 我 GIT 克隆了一个大型 SVN 存储库 6GB 大约 10 个分支 3 年的每日日志 克隆花了很多小时才完成 多次停止 不得不继续git svn fetch 与此同时 由于其他项目变得更加优先 SVN 到 Git 的迁移被搁置
  • 协议映射器在 Keycloak 中如何工作?

    我正在尝试一个示例来将用户属性添加到声明中 我正在按照这个例子here https www baeldung com keycloak custom user attributes 我正在尝试访问过滤器中的声明 但没有成功 我想了解协议映射
  • spring - 使用谷歌番石榴缓存

    我试图在我的 Spring 应用程序中使用谷歌番石榴缓存 但结果永远不会缓存 这是我的步骤 在conf文件中 EnableCaching Configuration public class myConfiguration Bean nam
  • 如何解释“grid-template-rows: auto auto 1fr auto”?

    最近 我使用创建了一个布局CSS grid https www w3 org TR css grid 1 虽然这很有效 但我对它的工作原理感到困惑 具体来说 我对这条线感到困惑grid template rows auto auto 1fr