居中时如何“自动扩展”CSS网格单元以填充可用空间? [复制]

Posted

技术标签:

【中文标题】居中时如何“自动扩展”CSS网格单元以填充可用空间? [复制]【英文标题】:How to "auto-expand" CSS grid cells to fill available space when it is centered? [duplicate] 【发布时间】:2019-01-21 18:34:40 【问题描述】:

我正在尝试解决一个问题,即如果屏幕足够宽,CSS 网格会居中并且其中的单元格均匀地跨越可用空间。这是为了避免在大屏幕(例如台式机)上,内容会跨越整个屏幕而难以理解。

看来我已经接近了,但最后一个似乎是最困难的一个:填充网格单元。这也可能是由于我采用的方法,我只是不明白,但也可能是我对 CSS 属性了解不够。

我有a pen 最能说明情况。而且由于一张图片至少和千字一样好,所以我展示了令人痛苦的布局问题:

问题:Article 平衡其他单元格的方法是什么? IE。他们的左右边缘是否与文章在“同一条线上”? (还有一个问题,当Article变小时,会出现一个垂直滚动条,而不是Article的内容换行。)

我认为CSS中的相关部分是以

开头的部分
@media only screen and (min-width: 600px) 
    .container 
        grid-template-columns: repeat(3, 1fr);    

       /* These are the pieces that set centering. */
       margin: auto;
       width: 1000px;        
       justify-items: center;    
    

我在心里玩弄了一个添加“侧栏”的想法,看看我是否可以扩展这些边缘。我会,但我不确定这是否是我要走的路,而且我目前的技能,可以说,有点缺乏 CSS。 :)

【问题讨论】:

在网格容器上使用justify-items: center,您将居中网格项,而不是它们的内容。如果您只想将内容居中,则将居中属性应用于网格项目 (revised demo)。欺骗中有更详细的解释。 @Michael_B 啊,我看到了修改后的演示,添加了 flex 布局。我没有资格判断哪个会更好,因为两者似乎都可以解决问题。也许这种 flex 布局提供了更多工具来解决其他问题,即在其他媒体查询启动之前应用 flex-wrap: nowrap; 或其他东西来移除滚动条,将导航移除到侧边菜单并包装文本。 【参考方案1】:

如果我正确理解了这个问题,您希望所有 div 都 100% 成为网格容器并与文章内联吗?

.container header,
.container nav,
.container footer 
   grid-column: span 3;
   width: 100%;


.container section 
   grid-column: span 3;
   width: 100%;

您需要为项目添加 100% 的宽度,它们将达到容器的大小。

给你:https://codepen.io/anon/pen/YjMmLw?editors=0110

【讨论】:

你是对的。伙计,我觉得自己像个邓布利顿。你可能不相信,但我已经在 CSS 网格上玩了几个小时了......成为一个 n00b 并没有帮助,现在也是午夜。我会拿着这个然后跑。干杯! 不确定这个答案如何解决问题。它只是覆盖居中。 回复:<article> 滚动条...它没有换行,因为您将容器设置为固定宽度 (width: 1000px)。这将防止容器缩小,从而防止文本换行。而是使用max-width: 1000px。 codepen.io/anon/pen/gjJYOG 另外,您的问题可能令人困惑,因为您说问题是“垂直”滚动条。我认为您的意思是“水平”。 无需“处理这种情况”。你可以保持原样。如果您觉得我在副本中的回答有帮助,您可以给它点个赞。

以上是关于居中时如何“自动扩展”CSS网格单元以填充可用空间? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

WPF TextBlock 字体调整大小以填充网格中的可用空间

如何使下一个/图像填充可用的网格空间?

如何使wpf数据网格填充所有可用空间并使用窗口调整大小?

获取一个文本框以填充 WPF 中的网格单元格

如何在多维数组/网格c ++中创建List

使用缩放视图填充网格单元