Html Flexbox div 文本换行
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/34283692/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Flexbox div text wrapping
提问by StragaSevera
I want to make text in my flexbox layout wrap.
我想在我的 flexbox 布局包装中制作文本。
Code:https://jsfiddle.net/u2oswnth/2/
代码:https : //jsfiddle.net/u2oswnth/2/
.child {
border: solid 1px;
display: flex;
}
.left {
width: 100px;
}
.container {
display: flex;
flex-wrap: wrap;
}
<div class="container">
<div class="child left">
Left!
</div>
<div class="child right">
I'm riiiight!!! I'm riiiight!!! I'm riiiight!!! I'm riiiight!!! I'm riiiight!!!
</div>
</div>
What I have:When exceeding frame width, .right
div
falls to next row.
我所拥有的:当超过框架宽度时,.right
div
落到下一行。
What I want:When exceeding frame width, words in .right
div
start wrapping, two columns stay side-by-side, forming single row.
我想要的是:当超过框架宽度时,单词.right
div
开始换行,两列并排,形成单行。
回答by Hidden Hobbes
Change flex-wrap: wrap;
to flex-wrap: nowrap;
. By using flex-wrap: wrap;
you are telling the .right
div
to wrap onto a new line if it runs out of space. As you only want the text itself to wrap you need to use flex-wrap: nowrap;
to keep .right
on the same line. The text will automatically wrap when there is not enough space.
更改flex-wrap: wrap;
为flex-wrap: nowrap;
。通过使用,flex-wrap: wrap;
您告诉.right
div
换行如果空间不足。由于您只希望文本本身换行,因此您需要使用flex-wrap: nowrap;
以保持.right
在同一行。当空间不足时,文本将自动换行。
- Change
flex-wrap: wrap;
toflex-wrap: nowrap;
on.container
- 更改
flex-wrap: wrap;
为flex-wrap: nowrap;
开.container
.child {
border: solid 1px;
display: flex;
}
.left {
width: 100px;
}
.container {
display: flex;
flex-wrap: nowrap;
}
<div class="container">
<div class="child left">
Left!
</div>
<div class="child right">
I'm riiiight!!! I'm riiiight!!! I'm riiiight!!! I'm riiiight!!! I'm riiiight!!!
</div>
</div>
回答by solanki...
NOTE: There is no need to apply "display: flex"
on child class and flex-wrap: nowrap;
on container class because bydefault it is nowrap
. Below is updated answer and WORKS!!.
注意:不需要"display: flex"
在子类和flex-wrap: nowrap;
容器类上申请,因为默认情况下它是nowrap
. 以下是更新的答案和作品!!
.child {
border: solid 1px;
}
.left {
width: 100px;
}
.container {
display: flex;
}
<div class="container">
<div class="child left">
Left!
</div>
<div class="child right">
I'm riiiight!!! I'm riiiight!!! I'm riiiight!!! I'm riiiight!!! I'm riiiight!!!
</div>
</div>
回答by stobasan
You should change flex-wrap: wrap;
to flex-wrap: nowrap;
你应该flex-wrap: wrap;
改为flex-wrap: nowrap;
Please note that flex-wrap: no-wrap;
(no-wrap with a dash) is NOT a valid value. Here's the doc reference about it: https://developer.mozilla.org/en-US/docs/Web/CSS/flex-wrap
请注意flex-wrap: no-wrap;
(不带破折号的包裹)不是有效值。这是关于它的文档参考:https: //developer.mozilla.org/en-US/docs/Web/CSS/flex-wrap