【发布时间】:2016-03-24 19:51:56
【问题描述】:
我正在创建一个英雄图像风格的横幅,我想在图像中间居中放置文本,但让文本的行左对齐。
我有一个p,其中包含两行内容,由br 分隔。我希望线的宽度是最大量内容的宽度,并且还希望这条线居中。下一行应该是左对齐的文本。
这个 js fiddle 展示了我目前所拥有的:https://jsfiddle.net/hnox2t18/
如您所见,p 并不总是拉伸到内容的宽度,而是将第一行分开。 p 应该是直到br 的内容宽度,并以该宽度为中心。
CSS
.home-slider .home-slide {
position: relative;
}
.home-slider img {
width: 100%;
}
.home-slider p {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
font-family: "proxima-nova", Arial, sans-serif;
text-transform: uppercase;
font-size: 40px;
color: #ffffff;
line-height: 1em;
}
.home-slider span {
font-weight: bolder;
}
HTML
<div class="home-slider">
<div class="home-slide">
<img src="https://placeholdit.imgix.net/~text?txtsize=0&w=800&h=400">
<p>Over <span>1,500</span> ports, <span>3000</span> terminals<br />and <span>6,800</span> berths</p>
</div>
</div>
【问题讨论】:
-
你能用弹性盒子吗?
-
不幸的是,我们需要支持旧版浏览器,所以我们尽量远离 flexbox