FF 和 Chrome 之间的 Flex 和分词行为不一致
Flex and word-break inconsistent behavior between FF and Chrome
我有一个使用 flex 的基本布局:
<div class="container">
<div class="left">LongTextWithNoBreaks...</div>
<div class="right">Short text</div>
</div>
左边div用flex-grow: 3
定义,右边用flex-grow: 9
定义。通常右边的 div 是左边的 3 倍。但是,当我在左侧有一个很长的文本且没有空格时,它在 chrome 中工作正常,但在 FF (35.0.1) 中工作不多。
注意:我正在使用 word-wrap: break-word;
这样文本会中断。
完整代码:
.container {
display: flex;
flex-flow: row wrap;
width: 100%;
word-wrap: break-word;
}
.left {
background: gray;
flex: 3 0 0;
}
.right {
color: #333;
background: green;
flex: 9 0 0;
}
<div class="container">
<div class="left">
supercalifragilisticexpialidocious supercalifragilisticexpialidocioussupercalifragilisticexpialidocioussupercalifragilisticexpialidocioussupercalifragilisticexpialidocious
</div>
<div class="right">
Hello, World!
</div>
</div>
编辑: 我打算在代码段中使用 word-wrap
并改为使用 word-break
。
注意: 使用 break-all
不是一个好的解决方案,因为它按字符而不是按单词中断。 word-break
首先尝试按单词打断,必要时只在单词中间打断。
貌似FF里缺的一块是在左边的元素上加上min-width: 0
.container {
display: flex;
flex-flow: row wrap;
width: 100%;
word-wrap: break-word;
}
.left {
background: gray;
flex: 3 0 0;
min-width: 0;
}
.right {
color: #333;
background: green;
flex: 9 0 0;
min-width: 0;
}
<div class="container">
<div class="left">
supercalifragilisticexpialidocious supercalifragilisticexpialidocioussupercalifragilisticexpialidocioussupercalifragilisticexpialidocioussupercalifragilisticexpialidocious
</div>
<div class="right">
Hello, World!
</div>
</div>
我有一个使用 flex 的基本布局:
<div class="container">
<div class="left">LongTextWithNoBreaks...</div>
<div class="right">Short text</div>
</div>
左边div用flex-grow: 3
定义,右边用flex-grow: 9
定义。通常右边的 div 是左边的 3 倍。但是,当我在左侧有一个很长的文本且没有空格时,它在 chrome 中工作正常,但在 FF (35.0.1) 中工作不多。
注意:我正在使用 word-wrap: break-word;
这样文本会中断。
完整代码:
.container {
display: flex;
flex-flow: row wrap;
width: 100%;
word-wrap: break-word;
}
.left {
background: gray;
flex: 3 0 0;
}
.right {
color: #333;
background: green;
flex: 9 0 0;
}
<div class="container">
<div class="left">
supercalifragilisticexpialidocious supercalifragilisticexpialidocioussupercalifragilisticexpialidocioussupercalifragilisticexpialidocioussupercalifragilisticexpialidocious
</div>
<div class="right">
Hello, World!
</div>
</div>
编辑: 我打算在代码段中使用 word-wrap
并改为使用 word-break
。
注意: 使用 break-all
不是一个好的解决方案,因为它按字符而不是按单词中断。 word-break
首先尝试按单词打断,必要时只在单词中间打断。
貌似FF里缺的一块是在左边的元素上加上min-width: 0
.container {
display: flex;
flex-flow: row wrap;
width: 100%;
word-wrap: break-word;
}
.left {
background: gray;
flex: 3 0 0;
min-width: 0;
}
.right {
color: #333;
background: green;
flex: 9 0 0;
min-width: 0;
}
<div class="container">
<div class="left">
supercalifragilisticexpialidocious supercalifragilisticexpialidocioussupercalifragilisticexpialidocioussupercalifragilisticexpialidocioussupercalifragilisticexpialidocious
</div>
<div class="right">
Hello, World!
</div>
</div>