css-grid 和 `fr` 单元不适用于 `overflow-wrap: break-word`

Yun*_*mre 4 css overflow word-wrap css-grid

我有一个grid宽度固定的容器,一行和一列包含一个单词。当我使用fr单位来调整列的大小时,overflow-wrap: break-word不换行导致列中的单词溢出。

据我的理解和文档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>
Run Code Online (Sandbox Code Playgroud)
.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 */
}
Run Code Online (Sandbox Code Playgroud)

Yux*_*uxi 6

看起来这个问题与https://css-tricks.com/preventing-a-grid-blowout/解决的问题非常相似

将列设置为minmax(0, 1fr)而不仅仅是1fr。这种方法为列提供了一个最小宽度,默认为auto。目标是将列从无限大的容器变成确定大小的容器。

代码笔链接:https ://codepen.io/thissushiguy/pen/mYdxjb