防止内容扩展网格项

2023-12-23

TL;DR:有没有类似的东西table-layout: fixedCSS 网格?


我尝试创建一个年视图日历,其中包含月份的大 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/ https://codepen.io/loilo/full/ryXLpO/

为简单起见,该笔中的每个月有 31 天,从星期一开始。

我还选择了一个小得离谱的字体来演示这个问题:

网格项目(=日单元格)非常紧凑,因为页面上有数百个网格项目。一旦日期数字标签变得太大(请随意使用左上角的按钮调整笔中的字体大小),网格的尺寸就会增大并超过页面的主体尺寸。

有什么办法可以防止这种行为吗?

我最初声明我的年份网格的宽度和高度为 100%,因此这可能是开始的点,但我找不到任何适合该需求的与网格相关的 CSS 属性。

免责声明:我知道有很简单的方法可以设置日历的样式,而无需使用 CSS 网格布局。然而,这个问题更多的是关于该主题的一般知识,而不是解决具体的例子。


默认情况下,网格项不能小于其内容的大小。

网格项目的初始大小为min-width: auto and min-height: auto.

您可以通过将网格项设置为来覆盖此行为min-width: 0, min-height: 0 or overflow具有除visible.

从规格来看:

6.6.自动最小网格尺寸 项目 https://www.w3.org/TR/css3-grid-layout/#min-size-auto

为了给网格项提供更合理的默认最小尺寸,本规范定义了auto的价值min-width / min-height还将指定轴上的自动最小尺寸应用于其网格项overflow is visible。 (效果类似于对弹性项目施加的自动最小尺寸。)

这是涵盖弹性项目的更详细说明,但它也适用于网格项目:

  • 为什么弹性项目不会缩小到超过内容大小? https://stackoverflow.com/q/36247140/3597276

这篇文章还涵盖了潜在的问题嵌套容器并已知主要浏览器之间的渲染差异.


要修复布局,请对代码进行以下调整:

.month-grid {
  display: grid;
  grid-template: repeat(6, 1fr) / repeat(7, 1fr);
  background: #fff;
  grid-gap: 2px;
  min-height: 0;  /* NEW */
  min-width: 0;   /* NEW; needed for Firefox */
}

.day-item {
  padding: 10px;
  background: #DFE7E7;
  overflow: hidden;  /* NEW */
  min-width: 0;      /* NEW; needed for Firefox */
}

jsFiddle 演示 https://jsfiddle.net/gthxnsbd/


1fr vs minmax(0, 1fr)

上述解决方案在网格项级别运行。对于容器级解决方案,请参阅这篇文章:

  • 为什么 minmax(0, 1fr) 对于长元素有效,而 1fr 则无效? https://stackoverflow.com/questions/52861086/why-does-minmax0-1fr-work-for-long-elements-while-1fr-doesnt
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

防止内容扩展网格项 的相关文章

  • 如何将文本环绕在非矩形图像周围?

    是否可以将文本环绕在非矩形图像周围 我希望不同国家的地图周围的文本环绕该国家 地区的形状 即使边界本身不是直的 文本也始终与该国家 地区的边界保持相同的距离 这可能吗 您可以使用这个方法 http torylawson com index
  • Bootstrap .row margin-left: -15px - 为什么它会缩进(来自文档)

    我在 Bootstrap 文档中看到了这一行 http getbootstrap com css grid intro http getbootstrap com css grid intro It says 列通过填充创建装订线 列内容之
  • 裁剪响应式全宽图像

    我必须剪辑跨越整个宽度的图像 以下事情对我不起作用 剪辑 这需要绝对位置 因此块元素不会堆叠在下面 背景位置 缩放时无法正确剪辑 放大时剪辑的部分会增加 反之亦然 包装器 包装器高度取决于浏览器宽度 因此其值应该是动态的 我使用了 seti
  • iPhone 4 上不稳定的 CSS3 动画

    我有一个非常简单的 或者至少我认为是 动画 我所做的只是 webkit background size 的动画 bubble position relative width 397px height 326px background url
  • 如何在索引视图中打印关联数据

    subjects this gt Subjects gt find all contain gt Users fields gt Users username Users email gt hydrate false gt toArray
  • 如何使div垂直滚动[重复]

    这个问题在这里已经有答案了 我用图片元素列表做了一个水平滚动 但是当我垂直滚动它时我失败了 我的水平滚动条代码是 div class pic container div class pic row div style width 100 a
  • Zurb 基金会粘性页脚

    我想使用 Foundation 4 拥有粘性页脚 并且我想使用 HTML5
  • 如何选择一个元素但排除其子元素

    我明白 div hover not class 作品 但是 如何实现 LI 元素的 悬停 效果 但排除鼠标悬停在LI内的某个 DIV 上时的悬停效果 E G li Hello div Bye div li 我想获得 li 的悬停效果 li
  • 标题后的三角形与标题背景渐变相匹配

    我必须制作这样的标题 我用这个渐变制作标题没有问题 我也知道如何定位三角形 after 但是 如何使三角形颜色与标题背景相匹配 问题是梯度不是静态的 例如 如果我在智能手机中打开页面 由于屏幕较短 渐变将比在显示器中打开更 紧凑 所以箭头颜
  • 单击后按键不会删除过渡

    我认为问题可能出在const 音频 document querySelector audio data key e keyCode const key document querySelector key data key e keyCod
  • 如何获取 Google Chrome 中所有加载的 CSS 类的列表?

    有时我需要打印 CSS 类列表才能找到合适的类 最适合我的是 JS 控制台中的函数 当您键入时 JS 类列表会被加载和过滤 例如 如果我需要记住一个图像类 我输入 Img 然后加载图像类列表 ImgFolder ImgPencil var
  • 如何使用CSS缩进多级select optgroup?

    只是试图通过嵌套深度缩进 optgroup 块 我尝试了一般margin left规则 嵌套元素然后尝试应用相同的规则 尝试过padding left 这样的缩进可能吗 看起来很简单 P 在下面的示例中 标记为 client2 a 的 op
  • 如何使用 CSS 或 jQuery 设置第一个和最后一个 li 的样式?

    我如何设计第一个 顶级 li和最后一个 顶层 li使用 CSS 还是 jQuery 我正在使用 CSS 设置第一个li但它也是造型第一li在每个中学阶段ul 那么我怎样才能让它只设置样式li其中包含 Main 1 最后一个包含 Main 6
  • 如何使用CSS缩放图像以填充div并保持纵横比?

    我想用一个 div 填充img 保持纵横比并根据需要拉伸宽度或高度以适应 div style width 80px height 80px img src div 我怎样才能实现它 如果图像不是二次方的 则必须将其 放大 并根据哪一侧较大而
  • Bootstrap 4 Beta 0 网格系统上的 Rowspan

    您好 我正在开发一个使用 Bootstrap 4 Beta 的电子商务模板 我让它在移动设备上工作 但在桌面设备上我不知道如何让购买按钮保持在标题下 在我的方法中 它出现在 图库 部分下 Desired Desktop Desired Mo
  • Chrome 19 无法识别字体粗细:较轻

    我刚刚启动了一个正在开发的项目以进行一些修改 并注意到该声明font weight lighter正在通过以下方式提供服务 font face并且它不再在网站上运行 参见图片 顶部镀铬 底部 ff 自昨晚以来 我的系统 Windows 上没
  • AngularJS + jQuery 移动

    是否还有其他可能性来设计AngularJS以移动友好的方式应用程序CSS 我正在计划一个移动应用程序 并希望使用 AngularJS 进行逻辑和数据绑定 但我不想自己设计所有内容CSS The AngularJSFAQ说它使用jQuery
  • WordPress 子主题包括包含文件

    我在一家WordPress使用 AMPPS 作为本地主机在我的本地计算机上进行设置 使用 Delta 主题 我创建了一个子主题 delta2 child 初始设置效果很好 但是 我需要更改包含文件夹中名为 home slider php 的
  • 使用flex-basis控制行上显示的项目数

    我想在使用 Flex 时将元素推出以隐藏它们 例如 如果flex basis为 50 仅显示两个项目弯曲到给定空间 而其他元素则在overflow hidden 领土 Or if flex basis为 25 则仅显示 4 个 Flex 元
  • 将引导程序弹出框保留在视口内

    我正在尝试使用带有按钮的侧边栏创建一个菜单 每个按钮都有一个指定的包含相关数据的弹出窗口 不幸的是 其中一个弹出窗口可能包含任意数量的行 并且在某些情况下它可能部分位于视口之外 See http jsfiddle net bfd9f 1 h

随机推荐

  • 在正则表达式替换中捕获字符串

    根据我从 Pharo 正则表达式文档中收集到的信息 我可以定义一个正则表达式对象 例如 re foo re bar asRegex 我可以通过以下方式将匹配的正则表达式替换为字符串 re copy foobar blah rebar rep
  • ASP.NET MVC 从单个视图向相关多个表添加记录

    我对 MVC 很陌生 所以如果我没有正确解释我的要求 没有使用正确的术语 我深表歉意 我有一个简单的数据库item and detail实体 它们具有一对多的关系 因此 Item 有许多详细信息 我想从单个视图向这两个表添加记录 到目前为止
  • 如何更改 UISearchBar 占位符和图像色调颜色?

    我已经尝试了几个小时的搜索结果 但我无法弄清楚这一点 也许这是不可能的 我正在尝试更改占位符文本和 UISearchBar 放大镜的色调颜色 如果重要的话 我只针对 iOS 8 0 这是我的代码以及现在的样子 let searchBar U
  • Robotium:如何在 Intellij IDEA 中为现有项目创建测试项目?

    我一直在为现有项目创建一个测试项目 对于 Eclipse 来说很简单 但是对于 IntelliJ 我被迫在工作场所使用它 我真的不知道如何使用 Robotium 框架测试项目 如果有人可以写一些明确的步骤来解释这一点 我将不胜感激 在 In
  • 为什么 Python 中的某些列表方法仅适用于已定义的变量? [复制]

    这个问题在这里已经有答案了 gt gt gt a 1 2 3 gt gt gt a append 4 gt gt gt a 1 2 3 4 But gt gt gt 1 2 3 append 4 gt gt gt Why do list h
  • Swift 中的多维数组

    编辑 正如 Adam Washington 指出的那样 从 Beta 6 开始 这段代码按原样工作 所以这个问题不再相关 我正在尝试创建并迭代二维数组 var array Array count NumColumns repeatedVal
  • 如何使用Excel VBA确定文件编码类型

    我构建了一个 Excel VBA 工具来验证 csv 文件 以确保它们包含的数据有效 它们的 csv 可以来自任何地方 来自完整的 UNIX 系统或从 Excel 保存数据的桌面用户 Excel 工具被发送给企业 以便他们可以在自己的环境中
  • 如何创建列表集合的深层副本

    假设我有以下课程 public class Author public int ID get private set public string firstName get private set public string lastNam
  • 无法在我的 Android 应用程序中播放 mp4 视频

    我非常想在我的 Android 应用程序中播放 mp4 视频 我什至为它写了一些代码 String sourceUrl http tvstream cn ru storage 1kanal 20120530 1kanal 20120530
  • C++ 重写方法

    我不明白这是怎么回事 我有一个场景类 它具有实体向量 并允许您从场景中添加和获取实体 class Scene private PRIVATE DATA vector
  • Marklogic (Nodejs API) - 搜索与对象数组属性中的 2 个(或更多)条件匹配的文档

    我的文档存储在 marklogic 中的 JSON 中 如下所示 我删除了我的案例中无用的属性 documentId languages locale en UK content translated true locale de DE c
  • 自动保存图片到本地

    我是 javascript 和 html5 的新手 我正在做我的大学项目 我正在创建一个基于网络的照片捕捉系统 是否可以自动将图像保存到本地存储 用户点击捕获按钮后 供参考 当用户点击捕获按钮时 它会激活此功能 function conte
  • 检测vb.net中文本的宽度

    有没有办法检测 vb net Web 应用程序中文本的实际宽度 它需要依赖于它的字体样式和大小 在 vb6 中 您可以将文本复制到标签中并使其扩展以适合然后测量其宽度 但这在 vb net 中不起作用 Update 经进一步检查 TextR
  • 为什么这段代码显示答案为 6? [复制]

    这个问题在这里已经有答案了 我的一个同学问了这个问题 我想确定我告诉他的是正确的答案 本质上 下面的代码 确实显示 6 作为答案 在到达 MessageBox Show i ToString 时让他感到困惑 我的解释是递减操作 i 实际上并
  • E0701 OOZIE 工作流程中的 XML 架构错误

    以下是我的workflow xml
  • 有角。使用 APP_INITIALIZER 时路由器 DI 不工作

    我正在从服务器预加载应用程序配置APP INITIALIZER通过以下方式 AppModule providers ConfigService provide APP INITIALIZER useFactory configService
  • CSS 动画旋转3d 在 Safari 中不起作用

    无论我如何尝试 我都无法让该动画在 Safari 12 中正常工作 我已经尝试过供应商前缀等 但没有任何效果 它在 Chrome 中运行良好 有人有主意吗 div class spinners div 这是CSS keyframes spi
  • 使用 Flask/blueprint 制作一些静态页面

    所以我对如何使用 Flask 构建页面而不必声明每个视图有点困惑 我如何制作一个可以在我想要加载的页面上拾取的蓝图 说这些是我的示例页面 templates layout html section1 subsection index htm
  • 在 WPF 和 Silverlight 中实现 INotifyProperty 对静态属性的更改

    问题是如何实施INotifyPropertyChanged在静态属性上 因为您实现的事件不是静态的 并且不能由静态属性调用 此外 您无法绑定到 Silverlight 中的静态属性 我已经看到这个问题出现在一些论坛上 并提供了各种解决方案
  • 防止内容扩展网格项

    TL DR 有没有类似的东西table layout fixedCSS 网格 我尝试创建一个年视图日历 其中包含月份的大 4x3 网格 以及用于日期的嵌套 7x6 网格 日历应填满页面 因此年份网格容器的宽度和高度均为 100 year g