css-grid 和 `fr` 单元不适用于 `overflow-wrap: break-word`
css-grid and `fr` unit does not work with `overflow-wrap: break-word`
我有一个 grid
容器,它具有固定宽度和包含单个单词的单行和单列。当我使用 fr
单位来调整列的大小时, overflow-wrap: break-word
不会换行导致列中的单词溢出。
据我和 docs 的理解,如果没有可接受的断点,overflow-wrap: break-word
应该在任何时候中断以防止溢出。
似乎有两件事可以解决这个问题。一种是为列大小设置 px
单位。其次是在文本容器上使用 overflow: hidden
。我在 Chrome(v73) 和 Firefox(v66) 上观察到相同的行为。
有人知道这种行为背后的原因吗?
https://jsfiddle.net/vdx90qeg/2/
<div class="container">
<div class="item1">
someverylongword
</div>
</div>
.container {
display: grid;
grid-template-columns: 1fr;
/*using 'px' instead of 'fr' works */
grid-template-areas: "item1";
width: 80px;
border: 1px solid black;
}
.item1 {
grid-area: "item1";
overflow-wrap: break-word;
/* overflow: hidden; */
/* works when uncommented */
}
看起来这个问题与 https://css-tricks.com/preventing-a-grid-blowout/ 解决的问题非常相似
将列设置为 minmax(0, 1fr)
,而不仅仅是 1fr
。这种方法为列提供了默认为 auto
的最小宽度。目标是将列从无限大小的容器转变为确定大小的容器。
codepen link: https://codepen.io/thissushiguy/pen/mYdxjb
我有一个 grid
容器,它具有固定宽度和包含单个单词的单行和单列。当我使用 fr
单位来调整列的大小时, overflow-wrap: break-word
不会换行导致列中的单词溢出。
据我和 docs 的理解,如果没有可接受的断点,overflow-wrap: break-word
应该在任何时候中断以防止溢出。
似乎有两件事可以解决这个问题。一种是为列大小设置 px
单位。其次是在文本容器上使用 overflow: hidden
。我在 Chrome(v73) 和 Firefox(v66) 上观察到相同的行为。
有人知道这种行为背后的原因吗?
https://jsfiddle.net/vdx90qeg/2/
<div class="container">
<div class="item1">
someverylongword
</div>
</div>
.container {
display: grid;
grid-template-columns: 1fr;
/*using 'px' instead of 'fr' works */
grid-template-areas: "item1";
width: 80px;
border: 1px solid black;
}
.item1 {
grid-area: "item1";
overflow-wrap: break-word;
/* overflow: hidden; */
/* works when uncommented */
}
看起来这个问题与 https://css-tricks.com/preventing-a-grid-blowout/ 解决的问题非常相似
将列设置为 minmax(0, 1fr)
,而不仅仅是 1fr
。这种方法为列提供了默认为 auto
的最小宽度。目标是将列从无限大小的容器转变为确定大小的容器。
codepen link: https://codepen.io/thissushiguy/pen/mYdxjb