2011-08-08 28 views
19

我有以下幾點:你可以使用display:table-cell並且有一個固定的寬度/高度嗎?

CSS:

.photo { 
    overflow: hidden; 
    display: table-cell; 
    vertical-align: middle; 
    text-align: center; 
    width: 100px; 
    height: 100px; 
} 

HAML

.photo 
    %img{:src => my_url} 

見的jsfiddle here。我用來演示的圖像是150像素×80像素。

我需要在.photo div內顯示圖像並剪掉任何多餘部分。圖像需要垂直和水平居中。但是,display:table-cell會導致.photo div忽略我的寬度和高度設置。我怎樣才能解決這個問題?

+1

可以使圖像的'背景image'和調整偏移,以把它放在正確的位置? –

+0

問題是我得到的圖像來自不同的尺寸。 – CodeWombat

+0

那麼.photo容器將擴展到的最大高度/寬度是多少?或者你會保持嚴格的尺寸100x100? – Dan

回答

21

table-cell不是垂直對齊的唯一解決方案。

.photo { 
    overflow: hidden; 
    background: #c0c0c0; 
    display:inline-block; /* or float:left; */ 
    text-align: center; 
    width: 100px; 
    height: 100px; 
    line-height:97px; 
} 
.photo img { 
    vertical-align:middle; 
    max-width:100%; 
    max-height:100%; 
} 
+1

謝謝,我已經學到了一些新東西,老師:) – CodeWombat

+0

不客氣^^如果你想了解更多:http://www.w3.org/TR/CSS2/box.html – MatTheCat

+1

在這方面的缺點方法是你需要'.photo'上的固定高度和寬度。 –

1

如果你把內部div它似乎工作。不知道爲什麼您首先需要display:table-cell

http://jsfiddle.net/locrizak/5tawU/

而且,你有沒有考慮只是把寬度圖像上?這會導致圖像的高度也相應地調整大小。

+3

我需要顯示:垂直對齊:工作中的表格單元格。 – CodeWombat

6

您可以使用display: table-cell但家長需要有display: table-row和該行的母公司應該有display: table;

相關問題