2016-03-24 8 views
0

私はイメージの中央にテキストを配置したいが、テキストの行は一揃えにしておくヒーローイメージスタイルのバナーを作成しています。絶対中心のテキストですが左揃え

brで区切られた2行の内容を含むpがあります。私は、行の幅をコンテンツの最大量の幅にし、この行を中央に配置したい。次の行は、テキストを左に揃える必要があります。

これはフィドルは私がこれまで持っているものを示してJS:https://jsfiddle.net/hnox2t18/

あなたが見ることができるように、p代わりに、常に最初のラインアップを分割、コンテンツの幅であることをストレッチしません。 pはコンテンツの幅がbrまでで、この幅の中央に配置する必要があります。あなたが中心になります囲むdiv要素を作成し、内部のあなたのpを含むことができ

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> 
+1

フレックスボックスは使用できますか? – wiesson

+0

残念なことに古いブラウザをサポートする必要があるので、フレックスボックスから離れようとしている –

答えて

1

だけpタグにwhite-space:nowrap;を使用しています。

JSFiddle Demo

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; 
    white-space:nowrap; 
} 

メディアクエリで必要に応じて調整します。

1

CSS

.overlay { 
    position: absolute; 
    top: 50%; 
    left: 50%; 
    transform: translate(-50%, -50%); 
} 

p { 
    font-family: "proxima-nova", Arial, sans-serif; 
    text-transform: uppercase; 
    font-size: 40px; 
    color: #ffffff; 
    line-height: 1em; 
} 

HTML

...  
<div class="overlay"><p>Over <span>1,500</span> ports, <span>3000</span> terminals<br />and <span>6,800</span> berths</p></div> 
... 

フィドル:https://jsfiddle.net/e4tqcs49/

+0

ウィンドウサイズを小さくすると、単語が2つのスペースに収まるスペースがあるにもかかわらず、テキストが3行に表示されます。理想的には、メディアクエリーで変更されるまで2つのままにしておきたい。 –

+0

pに幅を追加しますか? – wiesson

+0

pはそれ自身の幅を作る必要がありますので、水平に中央に配置されます –

0

あなたのpが十分な大きさではないので、ブレークが起こる行の前に分割。

pを十分に大きくするには、widthプロパティを設定する必要があります。 725pxはフォントサイズで動作するはずです。最初の行が小さい場合は破損します。 しかし、この解決策は反応しません。

.home-slider p { 
    width: 725px; 

最終的にフォントサイズも調整する必要があります。私は機能 "CSSをリセット" を使用し

0

;):

* { 
    margin: 0; 
} 

<p>タグはマージンが