【发布时间】:2018-11-28 12:43:32
【问题描述】:
我使用 flexbox 进行了简单的布局。
.wrap {
display: flex;
justify-content: space-between;
width: 100vw;
}
.wrap .left,
.wrap .right {
flex: 1;
}
.wrap .left {
background: blue;
}
.wrap .right {
background: green;
}
<div class="wrap">
<div class="left">hello!</div>
<div class="right">world!</div>
</div>
如果弹性项目有长文本,则此布局会溢出弹性容器。
.wrap {
display: flex;
justify-content: space-between;
width: 100vw;
border: 3px solid red;
}
.wrap .left,
.wrap .right {
flex: 1;
}
.wrap .left {
background: blue;
}
.wrap .right {
background: green;
}
<div class="wrap">
<div class="left">hello!</div>
<div class="right">world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!</div>
</div>
所以我使用了overflow-wrap 属性。但它没有用。
.wrap {
display: flex;
justify-content: space-between;
width: 100vw;
border: 3px solid red;
overflow-wrap: break-word; /* add */
}
.wrap .left,
.wrap .right {
flex: 1;
}
.wrap .left {
background: blue;
}
.wrap .right {
background: green;
}
<div class="wrap">
<div class="left">hello!</div>
<div class="right">world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!</div>
</div>
奇怪的是,与“overflow-wrap”具有相同作用的“word-break”工作正常。 ("word-break: break-word;" 不适用于 Firefox,但适用于 Chrome)
.wrap {
display: flex;
justify-content: space-between;
width: 100vw;
border: 3px solid red;
word-break: break-word; /* add */
}
.wrap .left,
.wrap .right {
flex: 1;
}
.wrap .left {
background: blue;
}
.wrap .right {
background: green;
}
<div class="wrap">
<div class="left">hello!</div>
<div class="right">world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!world!</div>
</div>
“word-break”和“word-wrap”有什么区别?从 W3C 文档中,我们找不到与上述行为相关的任何差异。
我阅读了 CSS Text Module Level 3 的两个部分。
【问题讨论】:
-
这一定是你感兴趣的:stackoverflow.com/questions/1795109/…
-
@Daut > "overflow-wrap: break-word" 是为了防止溢出,如果行中没有其他可接受的断点,通常不可破坏的单词可能会在任意点被破坏。 (source)所以,如果你设置“overflow-wrap:break-word”,“world!World!World!”还有“世界!世界!世界!”应该折回去。
-
我认为问题可能在于 flex 允许孩子在内容太大时溢出,因此单词 break 不会出现
-
@Takilsy > 感谢您提供良好的链接!有一些有用的答案,但没有一个提到规范。如果可能的话,我想阅读和理解规范。
-
@pete > 我是这么认为的。但是,由于“word-break”和“word-wrap”的结果不同,两者之间可能存在一些不同。