这个问题涉及这个问题:Text is breaking using absolute positioning
这个答案建议使用white-space: nowrap;
我的情况完全一样(我不知道标题div 的宽度,我不想设置它),但我不希望我的文字系统地在一个单一的也行。
我的标题有一个max-width: 300px
,我希望内容在一行上直到达到这个最大宽度,之后,我希望有一个换行符并从另一个开始。 (不知道我是否足够清楚)。
在这种情况下,white-space: nowrap;
无用......
这是一个codepen:https://codepen.io/msieurtoph/pen/wjKNZZ
我该怎么做呢
或者
...看起来像:
感谢您的帮助
答案 0 :(得分:2)
您遇到的问题是使用transform / translate将未知宽度的绝对定位div居中。 left: 50%
规则有效地为您的标题提供了父级的最大宽度50%,因为浏览器将其视为从中间开始并延伸到右边缘。
我的解决方案是将标题包装在一个全宽度绝对定位的div中,然后使用text-align: center
在父级和display: inline-block
上将其居中。这将允许h2元素动态扩展到最大宽度,但如果内容不需要它仍然会崩溃。
* {
box-sizing: border-box;
}
body {
margin: 60px;
}
p {
margin: 0;
}
.content {
border: 3px double black;
padding-top: 60px;
position: relative;
width: 350px;
}
.content p {
margin: 20px;
}
.title {
left: 0;
right: 0;
top: 0;
position: absolute;
text-align: center;
transform: translateY(-50%);
}
.title h1 {
margin: 0;
padding: 10px;
max-width: 300px;
background: black;
border-radius: 5px;
color: red;
display: inline-block;
}
<div class="content">
<div class="title">
<h1>February 2015 and real long text</h1>
</div>
<p>Mussum ipsum cacilds, vidis litro abertis. Consetis adipiscings elitis. Pra lá , depois divoltis porris, paradis. Paisis, filhis, espiritis santis. Mé faiz elementum girarzis, nisi eros vermeio, in elementis mé pra quem é amistosis quis leo. Manduma
pindureta quium dia nois paga. Sapien in monti palavris qui num significa nadis i pareci latim. Interessantiss quisso pudia ce receita de bolis, mais bolis eu num gostis.</p>
</div>
答案 1 :(得分:0)
删除变换/平移和空白区域,您可以将其设置为左侧和顶部的绝对定位,更改最大宽度:90%,
/* Cosmetics */
* { box-sizing: border-box; }
body { margin: 60px; }
p { margin: 0; }
/* True Code */
.content {
border: 3px double black;
padding-top: 60px;
position: relative;
width: 350px;
}
.content p { margin: 20px; }
.title {
background: black;
border-radius: 5px;
color: red;
left: 16px;
padding: 10px;
position: absolute;
text-align: center;
top: -40px;
max-width: 90%;
}
&#13;
<div class="content">
<h1 class="title">February 2015 and real long text</h1>
<p>Mussum ipsum cacilds, vidis litro abertis. Consetis adipiscings elitis. Pra lá , depois divoltis porris, paradis. Paisis, filhis, espiritis santis. Mé faiz elementum girarzis, nisi eros vermeio, in elementis mé pra quem é amistosis quis leo. Manduma pindureta quium dia nois paga. Sapien in monti palavris qui num significa nadis i pareci latim. Interessantiss quisso pudia ce receita de bolis, mais bolis eu num gostis.</p>
</div>
&#13;