2016-05-23 3 views
1

実際には、divの中にテキストを垂直にセンタリングすることを練習しています。オンラインで多くの指示を読んでください。しかし、コンテナdivをテーブルとして表示し、その中の子div(この場合は.middle)をtable-cellとして表示できるようにしました。できます。しかし、唯一の問題は、.container divの高さを100%に設定しようとすると、divがテキスト行に折り返してしまうことです。しかし、.container divの高さを明示的に定義すると、テキストを中心にして希望の幅を得ることができます。テキストを中央に配置します。表を表示します。 divの高さが増えない

誰もがなぜそれを説明できますか?これをより良く理解するには、画像のスクリーンショットを参照してください。

Screenshot with .container height:200px Screenshot with .container height:100%

html, 
 
body { 
 
    height: 100%; 
 
    width: 100%; 
 
    left: 0px; 
 
    top: 0px; 
 
    margin-top: 0px; 
 
    margin-right: 0px; 
 
    margin-bottom: 0px; 
 
    margin-left: 0px; 
 
    background-color: rgba(0, 0, 153, 1); 
 
} 
 
.container { 
 
    display: table; 
 
    width: 100%; 
 
    height: 100%; 
 
} 
 
.middle { 
 
    display: table-cell; 
 
    vertical-align: middle; 
 
} 
 
.inner { 
 
    display: table; 
 
    margin: 0 auto; 
 
}
<div class="container"> 
 

 
    <div class="middle"> 
 
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
 

 
    </div> 
 
</div>

+0

高さの値として '%'を使用するには親要素の値も設定してください。この場合、ウィンドウの高さをフルにしたい場合は、 'html and body'タグも' 100% 'にする必要があります。またはコンテナの親の高さが固定されている必要があります。 – DaniP

+1

あなたの投稿を編集し、コードをスニペットに変換しました。あなたの質問が理解できません。期待どおりに動作します。 –

答えて

1

親コンテナも、その高さが明示的に子供にpercentageを使用することができるように述べている必要があります。それ以外の場合は100%の値が何であるかわからない場合は、に別のコンテナを設定します。

+0

この場合、ボディの高さはピクセル単位で定義する必要があります。しかし、ピクセル単位で高さを明示的に定義したくない場合はどうすればよいですか? (2〜3ページに縦方向に連続したテキストを追加する予定がある場合は、子と親divを水平方向に展開したいと考えています。また、中央のテキスト機能を維持! –

+0

「ピクセル」に記載する必要はありません。 '%'や 'vh \ vw'を使うことができます。あなたは 'min-height'を試してみることができます。 – Ciprianis

+0

申し訳ありませんが、上記のCSSコードで本文部分を貼り付けるのを忘れていました。今度はコードを参照してください。身体の高さは100%と定義されています –

関連する問題