【发布时间】:2018-05-28 23:37:00
【问题描述】:
我有 2 个 flexbox 和一个里面的 flexbox。 如果文本大于父级,我希望文本分成多行。出于某种原因,如果我发送一个固定值(例如 250 像素)作为宽度,它会起作用。如果我将宽度设置为 100%,它不会分成多行。
这是我的代码:
#flexparent {
display: flex
}
#flexchild1 {
flex: 1;
background-color: green;
}
#flexchild2 {
flex: 1;
background-color: red;
display: flex;
flex-flow: column
}
#flexchild3 {
background-color: purple;
width: 100%;
word-wrap: break-word;
}
<div id="flexparent">
<div id="flexchild1">
FLEXCHILD1
</div>
<div id="flexchild2">
FLEXCHILD2
<div id="flexchild3">
ThisisasuperlongsentenceLoremipsumdolorsitametconsecteturadipisicingelitAsperioresnecessitatibusneueodioImpeditistenesciuntescorruptiessecumrepudiandaequidolorumIllumtemporibusquoerrorcumqueeximpeditmagnamLoremipsumdolorsitametconsecteturadipisicingelitAsperioresnecessitatibusneueodioImpeditistenesciuntescorruptiessecumrepudiandaequidolorumIllumtemporibusquoerrorcumqueeximpeditmagnamtstLoremipsumdolorsitametconsecteturadipisicingelitAsperioresnecessitatibusneueodioImpeditistenesciuntescorruptiessecumrepudiandaequidolorumIllumtemporibusquoerrorcumqueeximpeditmagnamLoremipsumdolorsitametconsecteturadipisicingelitAsperioresnecessitatibusneueodioImpeditistenesciuntescorruptiessecumrepudiandaequidolorumIllumtemporibusquoerrorcumqueeximpeditmagnamtst
</div>
</div>
</div>
这就是我想要的,但长句中没有空格。
#flexparent {
display: flex
}
#flexchild1 {
flex: 1;
background-color: green;
}
#flexchild2 {
flex: 1;
background-color: red;
display: flex;
flex-flow: column
}
#flexchild3 {
background-color: purple;
word-wrap: break-word;
}
<div id="flexparent">
<div id="flexchild1">
FLEXCHILD1
</div>
<div id="flexchild2">
FLEXCHILD2
<div id="flexchild3">
Thisisasuperlongsentence Loremipsum dolorsitametcon secteturadipisicingelitAsperi resnecessitatibusneu eodioImpeditistenes ciuntescorru ptiessecumrepudia ndaequidolor umIllumtempori busquoerrorcumqu eeximpeditmagnam Lore mipsumdo lorsitam etconsecteturadipisicing elitAsperioresne cessitatibusneueodi oImpeditisten esciuntescorruptiessecumrepudia ndaequidolorumIll umtemporibusq uoerrorc umqueeximpe ditmagn amtstLoremipsu mdolorsitametcon secteturadipisici ngelitAsperio resnecessitati busn
</div>
</div>
</div>
这是我为此制作的代码笔。
- 我的代码:https://codepen.io/tomzz/pen/mpJMow
- 我想要它,但没有 250px 宽度:https://codepen.io/tomzz/pen/VyLMaW
- 我想要它,但句子中没有空格:https://codepen.io/tomzz/pen/vpOeJp
【问题讨论】:
-
width: 100%必须继续#flexparent,而不是#flexchild3,当父母被允许成长时,孩子身上没有width: 100%(flex: 1on#flexchild2)到无穷大。 -
您只需将
min-width: 0添加到#flexchild2,如下@LGSon 所示。这是一个完整的解释:stackoverflow.com/q/36247140/3597276 -
将 word-break:break-all 添加到您的第一个 sn-p 之后,或者改为 word-wrap ... 并查看它是否有效。至少在FF中。 codepen.io/gc-nomade/pen/qpdVLL
-
@LGSon 不确定最小宽度是这里的一件事(并且重复):codepen.io/gc-nomade/pen/qpdVLL 它与布局有关,但也与使用的规则有关。在这里你可能只需要分词。
-
@G-Cyr
word-break:break-all;的缺点是它也破坏了不恰当的词,即 i.a.发生在 Chrome 中,因为这里的问题实际上是隐含的最小尺寸,所以最好以正确的方式解决它。
标签: html css flexbox word-wrap