第2部分使用绝对定位打破文本

时间:2018-04-23 02:13:22

标签: html css line-breaks absolute

这个问题涉及这个问题:Text is breaking using absolute positioning

这个答案建议使用white-space: nowrap;

我的情况完全一样(我不知道标题div 的宽度,我不想设置它),但我不希望我的文字系统地在一个单一的也行。

我的标题有一个max-width: 300px,我希望内容在一行上直到达到这个最大宽度,之后,我希望有一个换行符并从另一个开始。 (不知道我是否足够清楚)。 在这种情况下,white-space: nowrap;无用......

这是一个codepen:https://codepen.io/msieurtoph/pen/wjKNZZ

我该怎么做呢

enter image description here

或者

enter image description here

...看起来像:

enter image description here

感谢您的帮助

2 个答案:

答案 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%,

&#13;
&#13;
/* 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;
&#13;
&#13;