我有一个使用“display:inline-block”和“position:absolute”的父div结构。这很重要,无法改变!
但是..在孩子的浮动左侧div中,我的文字超出了它的宽度。
我该如何避免这种行为?
FIDDLE:https://jsfiddle.net/s8a818vw/
CSS:
#main {
width:100%;
height:400px;
overflow: hidden;
white-space: nowrap;
background:pink;
}
.sub {
width:600px;
display: inline-block;
height:400px;
position:absolute;
margin-left: auto;
margin-right: auto;
left: 0;
right: 0;
}
.sub-text {
width:70%;
height:100%;
float:left;
background:lime;
overflow: none;
}
.sub-img {
width:30%;
height:100%;
float:right;
background:red;
display:flex;
flex-direction: row;
flex-wrap: nowrap;
justify-content: center;
align-content: flex-end;
align-items: center;
}
HTML:
<div id="main">
<div class="sub">
<div class="sub-text">
<h1>Header</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce sit amet tellus vitae nisi feugiat malesuada. Phasellus semper vehicula ante. Pellentesque ut finibus nisl. Cras tempus, eros ut aliquam mollis, metus diam efficitur neque, non pellentesque eros mi a felis. In lectus ipsum, rutrum at risus eget, faucibus sodales ipsum. Nam vel interdum libero. Donec ac lacus interdum, rutrum neque sit amet, vestibulum tellus.</p>
<a href="#">My Link</a>
</div>
<div class="sub-img">img 1</div>
</div>
</div>
答案 0 :(得分:4)
此问题在于您已在white-space: nowrap;
上设置#main
。这是由p
标记继承的,导致文本无法包装。
将white-space
设置为类似normal
的内容会导致文本按照您的预期进行换行。
.sub-text{
white-space: normal;
}
答案 1 :(得分:1)
从white-space: nowrap;
#main
答案 2 :(得分:0)
您可以使用white-space: normal;
,这会将文本换行到下一行。
您的代码应如下所示:
.sub-text {
white-space: normal;
}
希望这有帮助!