2010-09-08 95 views
11

所以,我有這些參數在div:如何將未知大小的圖像居中放在div中?

container { 
position:fixed; 
background-color: rgba(50,50,50,0.7); 
width:100%; 
height:100%; 
display:none;} 

它包含未知大小(大小DINAMIC,它可能是不同的)圖像

我需要垂直和水平對齊圖像。

請幫助

+0

也許你的CSS有一個錯字,但我想確保你明白你的類選擇符應該在一個點前面,如'.container {...}' – Robusto 2010-09-08 16:52:44

+0

當然,我知道這:) :) 我的#container不是一個類,它是id。 – Oshibka404 2010-09-08 17:40:08

+1

如果它是一個ID,那麼你應該用#來開頭,就像你在評論中所做的那樣。我只是說。 – Robusto 2010-09-08 20:37:00

回答

25

背景圖像的方法將工作,與背景位置:中心爲中心,不幸的是你會失去你的縮放圖像的控制。

您可以將相關圖片如下:

position:absolute; 
margin:auto; 
top:0; 
bottom:0; 
left:0; 
right:0; 

PS。請記住,這將相對於其最接近的定位父母。

+0

謝謝!它的工作原理:) – Oshibka404 2010-09-08 17:38:42

+0

適用於圖像,但不適用於DIV。似乎需要硬編碼的CSS寬度/高度來居中。請注意,如果刪除style屬性並僅保留div的HTML寬度/高度,則無法居中。沒有這樣的img標籤。爲什麼這種不一致? https://jsfiddle.net/L1rk46xy/ – Triynko 2015-08-10 20:58:56

+0

完美。動態。 – 2017-09-05 18:52:18

0

最簡單的跨瀏覽器的方式是設置動態的圖像作爲#container背景屬性:

<div id="container" style="background: url(path/to/image.png) no-repeat 50% 50%"></div> 
0

我認爲最簡單的方法是做到這一點:

.container img { 
    display:block; 
    margin:auto; 
} 

調整.container以滿足您的DIV(不知道,如果你是一個類或ID)

哦,我沒看過所有你的問題。

這似乎工作:

<style type="text/css"> 
.wraptocenter { 
    display: table-cell; 
    text-align: center; 
    vertical-align: middle; 
    width: ...; 
    height: ...; 
} 
.wraptocenter * { 
    vertical-align: middle; 
} 
/*\*//*/ 
.wraptocenter { 
    display: block; 
} 
.wraptocenter span { 
    display: inline-block; 
    height: 100%; 
    width: 1px; 
} 
/**/ 
</style> 
<!--[if lt IE 8]><style> 
.wraptocenter span { 
    display: inline-block; 
    height: 100%; 
} 
</style><![endif]--> 

完全學分制:http://www.brunildo.org/test/img_center.html

相關問題