2014-09-05 46 views
1

請注意所附圖像/線框。我如何用CSS構建這個元素。如果有一行文字是垂直居中的,但是也支持兩行也是垂直居中的?如何垂直居中使用CSS動態顯示1行或2行文本?

感謝

enter image description here

+0

右邊的圓圈總是相同的大小? – Dan 2014-09-05 16:50:19

+1

將表格格對待你的div是最好的方法。看看這篇文章:http://css-tricks.com/vertically-center-multi-lined-text/ – APAD1 2014-09-05 16:50:54

+1

哪裏是你的嘗試小提琴/ – 2014-09-05 16:51:27

回答

4

您可以通過您的包裝股利display:table:和你內心的文字DIV display:table-cell做到這一點。見下面的例子:

HTML:

<div class="wrapper"> 
    <div class="inner"> 
     One Line</br> 
     Two Line</br> 
     Three Line</br> 
    </div> 
</div> 

CSS:

.wrapper{ 
width:400px; 
height:200px; 
display:table; 
background:brown; 
} 

.inner{ 
display:table-cell; 
vertical-align:middle; 
text-align:center; 
} 

FIDDLE: http://jsfiddle.net/pgwL47oy/1/

+0

很好的答案:+1 – gibberish 2014-09-05 16:59:00

+0

嘿謝謝你! – jleggio 2014-09-05 17:00:33

2

這是在你的問題中留言已經提到的,但通常的用法display: table-cell;vertical-align: middle;是你所追求的。

的想法是讓父容器顯示爲一個表display: table;,然後你使用含有這些文本節點跨度或段落元素被賦予上述table-cell顯示器vertical-align

這對我來說很有用,應該值得一試!

Here's a CSS Tricks article that could help you out further

希望幫助! :)