【发布时间】:2017-09-04 20:01:57
【问题描述】:
TL;DR: 有没有类似 table-layout: fixed 的 CSS 网格?
我尝试创建一个年视图日历,其中月份有一个 4x3 的大网格,其中的日子嵌套了 7x6 网格。
日历应该填满页面,因此年份网格容器的宽度和高度各为 100%。
.year-grid {
width: 100%;
height: 100%;
display: grid;
grid-template: repeat(3, 1fr) / repeat(4, 1fr);
}
.month-grid {
display: grid;
grid-template: repeat(6, 1fr) / repeat(7, 1fr);
}
这是一个工作示例:https://codepen.io/loilo/full/ryXLpO/
为简单起见,该笔中的每个月都有 31 天,从星期一开始。
我还选择了一个小得离谱的字体来演示这个问题:
网格项目(= 日单元格)非常简洁,因为页面上有数百个。一旦日期数字标签变得太大(随意使用左上角的按钮在笔中调整字体大小),网格的大小就会增长并超过页面的正文大小。
有没有办法防止这种行为?
我最初声明我的年份网格的宽度和高度为 100%,所以这可能是开始的点,但我找不到任何符合该需求的与网格相关的 CSS 属性。
免责声明: 我知道有一些非常简单的方法可以在不使用 CSS 网格布局的情况下设置日历样式。但是,这个问题更多的是关于该主题的一般知识,而不是解决具体示例。
【问题讨论】:
-
你想做什么?每个单元格中的字体可以是任意大小,并且不会导致网格单元格大小增加?
-
没错。如果我将网格项的大小设置为根据百分比值而不是分数,基本上是一种更方便的方法。
-
我基本上是在寻找表格布局的网格布局版本:固定(参见:codepen.io/loilo/pen/dvxpvq?editors=1100)
-
这是整个 CSS Grid 规范中最大的痛点。他们需要一个网格区域无法逃脱其任何父网格容器尺寸的设置!事实上,对于深度嵌套的网格结构来说,这是一场噩梦。
标签: css grid-layout css-grid