2016-05-29 6 views
1

I次のようなHTMLがあります。フレックスボックスを使用して親の高さを常に埋める方法は?

<div class="admonition info"> 
    <p class="admonition-title">Info</p> 
    <p>Text here</p> 
</div> 

とCSSを:

.admonition { 
    border: 1px solid red; 
    display: flex; 
    justify-content: center; 
    align-items: center; 
} 

.admonition > p { 
    margin: 0; 
    padding: 6px; 
    display: block; 
} 

.admonition-title { 
    background-color: #2B83BD; 
    color: #fff; 
    display: block; 
    padding: 2px; 
} 

.admonition > .admonition-title { 
    font-size: 1px; 
    letter-spacing: -1px; 
    color: transparent; 
    width: 64px; 
    text-align: center; 
    vertical-align: middle; 
    min-width: 60px; 
} 

.admonition > .admonition-title:before { 
    font-family: "FontAwesome"; 
    font-size: 32px; 
    letter-spacing: normal; 
    color: #fff; 
} 

.admonition.info > .admonition-title:before { 
    content: "\f129"; 
} 

.admonition.info > p:not(.admonition-title) { 
    background-color: #7DBAE3; 
} 

.admonition.info > .admonition-title { 
    background-color: #2B83BD; 
} 

私は次の制約で子供をレンダリングしたいと思います:彼らは、縦方向にセンタリングされ

  • 高さが等しくない場合は、ギャップを埋めるために伸ばしてください

Current rendering

白のギャップが、私は避けたいものです。 Live on JSFiddle

HTMLはマークダウンから生成されており、実際に構造を制御することはできません。これは簡単な方法で実装できますか? Javascript、jqueryもOKですが、私はCSSでこれを行うことを好むでしょう。

答えて

3

align-items: stretch;を使用して、アイテムを親の高さに塗りつぶすだけです。

次に、あなたのアイコンを手動でセンタリングする必要があり、私はそれを行っているでしょう:

.admonition > .admonition-title { 
    display: flex; 
    align-items: center; 
    justify-content: center; 
} 

https://jsfiddle.net/4mw8a08x/

enter image description here

+0

は、あなたが変更何かはありますか?私はそれを変更するだけで、私はこのレンダリングを取得します:http://i.imgur.com/19wrLOs.png([fiddle](https://jsfiddle.net/Lqvc9ybt/1/)) –

+0

はい、あなたが見るなら私のjsfiddle、私は適切に "アイコン"を整列するためにいくつかの他の少しの変更を加えました。 –

+0

詳細をお寄せいただきありがとうございます。 –

関連する問題