我有一個包含span
的div,我希望span
垂直和水平地與我的div
的中心對齊。在一個div中垂直居中跨度
這裏的小提琴:http://jsfiddle.net/RhNc2/1/
我已經試穿span
並在div
的vertical-align
margin:auto
,但它不工作
編輯:我的div和我的跨度沒有固定的高度,這取決於內容的,我已經把它固定在小提琴只是爲了告訴
我有一個包含span
的div,我希望span
垂直和水平地與我的div
的中心對齊。在一個div中垂直居中跨度
這裏的小提琴:http://jsfiddle.net/RhNc2/1/
我已經試穿span
並在div
的vertical-align
margin:auto
,但它不工作
編輯:我的div和我的跨度沒有固定的高度,這取決於內容的,我已經把它固定在小提琴只是爲了告訴
垂直對齊是件棘手的事,我不知道是否有一個嘗試和真實的方式。過去幾年最可靠的技術是使用CSS表格佈局。這種方法唯一的缺點是它可能不適用於過時的瀏覽器。儘管如此,根據我的經驗,這可能是最好的整體解決方案。請參閱下面我舉的例子:
<style type="text/css">
#container {
display:table;
border-collapse:collapse;
height:200px;
width:100%;
border:1px solid #000;
}
#layout {
display:table-row;
}
#content {
display:table-cell;
text-align:center;
vertical-align:middle;
}
</style>
<div id="container">
<div id="layout">
<div id="content">
Hello world!
</div>
</div>
</div>
這裏有一個的jsfiddle:http://jsfiddle.net/aGKfd/2/
還有另一種技術,但它並不像上述技術的萬無一失。它涉及兩個容器,外部容器的位置設置爲相對,內部設置爲絕對。內膽你可以親近的使用絕對定位,但它需要一些調整,以得到恰到好處:
<style type="text/css">
#vertical{
position:absolute;
top:50%;
left:0;
width:100%;
text-align:center;
}
#container {
position:relative;
height:200px;
border:1px solid #000;
}
</style>
<div id="container">
<div id="vertical">
Hello world!
</div>
</div>
這裏有一個的jsfiddle:http://jsfiddle.net/6SWPe/
一下添加到div CSS:
display:table-cell; text-align:center
工作小提琴是在這裏:http://jsfiddle.net/sdoking/DCT85/
CSS:
#myDiv {
border:1px solid black;
height:50px;
width:200px;
vertical-align:middle;
display:table-cell;
text-align:center
}
#mySpan {
width:100%;
border:thin blue solid
}
邊框是爲了清晰:)
這很好,但與某些瀏覽器(例如某些流行版本的IE)不兼容。你可以在這裏看到更多關於垂直居中的內容:http://www.jakpsatweb.cz/css/css-vertical-center-solution.html –
這可以工作,但它不垂直對齊。 –
這是除了他目前的CSS,其中包括垂直對齊:中間已經 - 看到小提琴 – sdo
使用的line-height =高度: http://jsfiddle.net/RhNc2/8/
-1如果文本超過一行,則行高會中斷。 –
+1 downvote pls :) – bravedick
這
#myDiv{
border:1px solid black;
height:50px;
width:200px;
}
#mySpan{
display:block;
text-align:center;
line-height:50px;
}
而且的jsfiddle:http://jsfiddle.net/Simo990/RhNc2/9/
編輯:由於您的div和跨度高度取決於內容,我的解決方案將無法正常工作,因爲它需要固定的高度和只有一行文本。只需尋找與position:absolute
解決方案。
您也可以將這些樣式應用於包含<div>
。 line-height
解決方案假定您只需要一行文本即可居中。
#myDiv{
border:1px solid black;
height:50px;
width:200px;
text-align:center;
line-height:50px;
}
的
可能重複[如何垂直居中一個div裏面?](http://stackoverflow.com/questions/4357315/how-to-vertically-center-a-span-inside-a- div) – mercator
令人驚歎。我只有兩個工作解決方案之一,但我有3個downvotes?去圖:)我試圖刪除它,並得到我的「同伴壓力」徽章。 –
@mercator不確定重複,因爲鏈接中的解決方案提出了一個頂部:50%,在這裏他們告訴評論它不是一個偉大的技術。我做了一些修改。 – GregM