2012-02-29 17 views
1

私は以下の2つのシナリオ(タイトルは動的です)をカバーしたいとしましょう: IE8 +のCSSのみ(JSなし)で達成できますか?テキストの長さに応じたCSS動的テキストの整列

シナリオA:短いヘッダ、タイトル、ページ幅に対して相対的に中心を整列する

| back button |     short Title        | 
<-----------------------------------|-----------------------------------> 

シナリオB:バックボタン

|    | Very very very very very very very very very very very | 
| back button | Very very very very very very very very long Title  | 
<-----------------------------------|-----------------------------------> 
上にオーバーレイされることなく、ヘッダ・コンテンツ・エリアを埋めるために非常に長いヘッダタイトル

答えて

0

私は考えることができる2つの方法:

フロートバックボタンが左に浮かび、タイトルが自然にラップされます。

HTML

<div> 

    <a href="#" class="back">Back</a> 

    <h1>Title</h1> 

</div> 

CSSは

div { 
    text-align: center; 
} 

a.back { 
    float: left; 
    margin-right: 20px; 
} 

それともこのように、同じHTML - あなたが同じ100pxにパディングを持っていない限りだけで、適切にこの文句を言わない、中心物事を実現します右手側も同様です。

div { 
    position: relative; 
    min-height: 30px; 
    padding-left: 100px; 
    text-align: center; 
} 

a.back { 
    position: absolute; 
    top: 50%; left: 0; 
    width: 90px; 
    height: 30px; 
    margin-top: -15px; 
} 

2番目の問題は、ラッピングの問題を回避し、ボタンを中央に垂直に配置することです。戻るボタンの幅 - 役立ちます:)

+0

感謝意志を

希望は、タイトルがページの合計幅ではなく、全体の幅に比較的中央に整列されていないようです。私はここに行方不明の何か? @see http://jsfiddle.net/fhrQX/1/ – seb

+0

申し訳ありませんが、私の間違いは、これが可能であるかどうかはわかりません。ブラウザは1行単位で中心点を計算する必要があります。したがって、フロートの周りにテキストを折り返しても、中心点はまだその実際の線の中央にあります。これはあなたの最良の妥協であるかもしれません:http://jsfiddle.net/will/fhrQX/14/ – will

関連する問題