1

word-wrap: break-word当相应的规则在 Chrome 中有效时,为什么CSS 规则不会在 Firefox 中缩小元素?

这里的.form-field容器被限制为 300px 的宽度,legend它的内部有 100% 的宽度。里面的长字拉伸legend到溢出 300px 宽度。

当我break-word使用(非标准)WebKitword-break定义将 CSS 规则应用于 Chrome 时,长字被破坏并且legend元素缩小到预期的 300 像素宽度。

在 Firefox 中,相应的word-wrap规则不会破坏文本并缩小元素,除非我专门将 的宽度设置legend为 300px。为什么我必须这样做?为什么 Firefox 不能legend正确计算“100% of 300px”并调整大小?

如果您在 Firefox 上查看此代码段,您会看到legend仍然溢出其容器的 300 像素宽度。

在此处输入图像描述

.form-field {
  border: none;
  padding: 0;
  max-width: 300px;
  margin: 0 auto 10px;
  outline: 1px solid purple;
}

.form-field legend {
  text-align: left;
  width: 100%;
  word-wrap: break-word;
  word-break: break-word;
}

.form-field input[type=text] {
    width: 100%;
    font-size: 16px;
    padding: 7px 14px;
    box-sizing: border-box;
    border: 1px solid #c8d7e1;
}
<fieldset class="form-field">
  <legend>Betweenthesetwo, InowfeltIhadtochoose. Mytwonatureshadmemoryincommonbutallotherfacultiesweremostunequallysharedbetweenthem.</legend>
  <input type="text">
</fieldset>

(在 macOS Chrome 64 和 Firefox 57 中测试)。

4

3 回答 3

3

Firefox 不支持break-word的值。word-break查看MDN 文档,您将看到:

在此处输入图像描述

于 2018-03-03T09:45:25.410 回答
0

更新图例的 CSS

.form-field legend {
  text-align: left;
  width: 100%;
  word-wrap: break-word;
  word-break: break-all; // Modified 
}
于 2018-03-03T11:09:25.117 回答
0

我们需要的只是

word-break: break-all;
于 2018-03-03T14:22:00.287 回答