我有以下div
<div id="over" style="position:absolute; width:100%; height:100%>
<img src="img.png">
</div>
如何對齊圖像,使其位于div的中間和中心?
body {
margin: 0;
}
#over img {
margin-left: auto;
margin-right: auto;
display: block;
}
<div id="over" style="position:absolute; width:100%; height:100%">
<img src="http://www.garcard.com/images/garcard_symbol.png">
</div>
這也可以使用Flexbox布局來完成:
靜態(tài)尺寸
.parent {
display: flex;
height: 300px; /* Or whatever */
background-color: #000;
}
.child {
width: 100px; /* Or whatever */
height: 100px; /* Or whatever */
margin: auto; /* Magic! */
}
<div class="parent">
<img class="child" src="https://i.vimeocdn.com/portrait/58832_300x300"/>
</div>
在我看來,你也希望該圖像在容器內垂直居中。(我沒有看到任何回答提供了這一點)
工作小提琴:
純CSS解決方案 不中斷文檔流(無浮動或絕對定位) 跨瀏覽器兼容性(甚至IE6) 完全響應。 超文本標記語言
<div id="over">
<span class="Centerer"></span>
<img class="Centered" src="http://th07.deviantart.net/fs71/200H/f/2013/236/d/b/bw_avlonas_a5_beach_isles_wallpaper_image_by_lemnosexplorer-d6jh3i7.jpg" />
</div>
半鑄鋼?鋼性鑄鐵(Cast Semi-Steel)
*
{
padding: 0;
margin: 0;
}
#over
{
position:absolute;
width:100%;
height:100%;
text-align: center; /*handles the horizontal centering*/
}
/*handles the vertical centering*/
.Centerer
{
display: inline-block;
height: 100%;
vertical-align: middle;
}
.Centered
{
display: inline-block;
vertical-align: middle;
}
注意:這種解決方案適合對齊任何元素中的任何元素。 對于IE7,當應用。類在塊元素上居中,您將不得不使用另一個技巧來使內聯(lián)塊工作。(這是因為IE6/IE7不能很好地處理塊元素上的內聯(lián)塊)
您可以通過使用display:flex CSS屬性輕松實現(xiàn)這一點:
#over {
height: 100%;
width: 100%;
display: flex;
align-items: center;
justify-content: center;
}
我對這里介紹的其他解決方案仍有一些問題。最后,這對我最有效:
<div class="parent">
<img class="child" src="image.png"/>
</div>
css3:
.child {
display: block;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
-webkit-transform: translate(-50%, -50%); /* Safari and Chrome */
-moz-transform: translate(-50%, -50%); /* Firefox */
-ms-transform: translate(-50%, -50%); /* IE 9 */
-o-transform: translate(-50%, -50%); /* Opera */
// I suppose you may like those too:
// max-width: 80%;
// max-height: 80%;
}
您可以在本頁閱讀更多關于該方法的信息。
Daaawx的答案是可行的,但我認為如果我們消除內聯(lián)css,它會更干凈。
body {
margin: 0;
}
#over img {
margin-left: auto;
margin-right: auto;
display: block;
}
div.example {
position: absolute;
width: 100%;
height: 100%;
}
<div class="example" id="over">
<img src="http://www.garcard.com/images/garcard_symbol.png">
</div>
基本上,將左右邊距設置為自動會導致圖像居中對齊。
<div id="over" style="position:absolute; width:100%; height:100%>
<img src="img.png" style="display: block; margin: 0 auto;">
</div>
這將是一個更簡單的方法
#over > img{
display: block;
margin:0 auto;
}
嗯,我們在2016年...為什么不用flexbox? 也是有求必應。享受吧。
#over{
display:flex;
align-items:center;
justify-content:center;
}
<div id="over">
<img src="http://www.garcard.com/images/garcard_symbol.png">
</div>
簡單。2018.FlexBox。檢查瀏覽器支持-我可以使用嗎 最小解:
div#over {
display: flex;
justify-content: center;
align-items: center;
}
要獲得盡可能廣泛的瀏覽器支持:
div#over {
display: -webkit-flex;
display: -ms-flex;
display: flex;
justify-content: center;
-ms-align-items: center;
align-items: center;
}
將img設置為display:inline-block,同時將上級div設置為text-align:center也可以完成這項工作
編輯:對于那些玩顯示的人:內嵌塊>>>不要忘記,例如兩個div
<div>Div1 content</div>NOSPACEHERE<div>Div2 content</div>
它們之間真的沒有空格(如此處所示)。
避免它們之間的這些(內嵌塊固有的)間隙。我現(xiàn)在寫的每兩個字之間都可以看到這些空隙!:-)所以..希望這對你們有些人有所幫助。
我已經嘗試了許多方法,但是只有這一種方法適用于容器div中的多個內聯(lián)元素。下面是將div中的所有內容居中對齊的代碼。
半鑄鋼?鋼性鑄鐵(Cast Semi-Steel)
.divContainer
{
vertical-align: middle;
text-align: center; <!-- If you want horizontal center alignment -->
}
.divContainer > *
{
vertical-align: middle;
}
超文本標記語言
<div class="divContainer">
<span>Middle Text</span>
<img src="test.png"/>
</div>
樣本代碼在這里:https://jsfiddle.net/yogendrasinh/2vq0c68m/
CSS文件
.over {
display : block;
margin : 0px auto;
標記的答案不會垂直對齊圖像。適用于現(xiàn)代瀏覽器的解決方案是flexbox。flex容器可以配置為水平和垂直對齊其項目。
<div id="over" style="position:absolute; width:100%; height:100%; display: flex; align-items: center; justify-content: center;">
<img src="img.png">
</div>
當你必須居中對齊圖像并且你的父div覆蓋了整個屏幕時,這個方法對我很有效。即高度:100%和寬度:100%
#img{
position:absolute;
top:50%;
left:50%;
transform:translate(-50%,-50%);
}
只需設置父div css屬性“text-align:center;”
<div style="text-align:center; width:100%">
<img src="img.png">
</div>
嘗試以下最簡單的代碼:
<div class="outer">
<img src="image.png"/>
</div>
和CSS:
.outer{
text-align: center;
}
.outer img{
display: inline-block;
}
許多答案建議使用margin:0 auto,但這只在你試圖居中的元素不在左邊或右邊浮動時有效,也就是說浮動css屬性沒有設置。為此,將display屬性應用到table-cell,然后將左右邊距應用到auto,這樣您的樣式看起來就像style = " display:table-cell;邊距:0自動;"
HTML:
<div id="over">
<img src="img.png">
</div>
CSS:
#over {
text-align: center;
}
#over img {
vertical-align: middle;
}
對于水平居中,只需將
#over img {
display: block;
margin: 0 auto;
clear:both;
}
另一種方法:
#over img {
display: inline-block;
text-align: center;
}
垂直居中只需輸入:
#over img {
vertical-align: middle;
}
這對我很有效:
#image-id {
position: absolute;
top: 0; left: 0; right: 0; bottom: 0;
width: auto;
margin: 0 auto;
}
這對我起了作用。
<div class="CenterImage">
<asp:Image ID="BrandImage" runat="server" />
</div>
注意:在這種情況下,沒有與“BrandImage”關聯(lián)的css類
CSS:
.CenterImage {
position:absolute;
width:100%;
height:100%
}
.CenterImage img {
margin: 0 auto;
display: block;
}
使用定位。以下方法對我有效...
縮放到圖像中心(圖像填充div):
div{
display:block;
overflow:hidden;
width: 70px;
height: 70px;
position: relative;
}
div img{
min-width: 70px;
min-height: 70px;
max-width: 250%;
max-height: 250%;
top: -50%;
left: -50%;
bottom: -50%;
right: -50%;
position: absolute;
}
不縮放到圖像中心(圖像不填充div):
div{
display:block;
overflow:hidden;
width: 100px;
height: 100px;
position: relative;
}
div img{
width: 70px;
height: 70px;
top: 50%;
left: 50%;
bottom: 50%;
right: 50%;
position: absolute;
}
我在CSS中添加了更多的屬性。像這樣:
div#over {
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
-ms-align-items: center;
display: -webkit-flex;
display: -ms-flex;
display: flex;
}
很長一段時間,我也嘗試了將img放在div中心的解決方案,但對于我來說,我只需要ajax加載進程中的這種類型的組件,所以我簡單地嘗試了以下解決方案,希望這對你有所幫助!
<div id="loader" style="position: absolute;top: 0;right: 0;left: 0;bottom: 0;z-index: 1;background: rgba(255,255,255,0.5) url('your_image_url') no-repeat center;background-size: 135px;display: none;"></div>
大多數(shù)解決方案都不起作用,因為100%高度的div并不意味著完整的瀏覽器高度。
使用高度:100vh作品。
<style type="text/css">
body {
margin: 0;
}
#over {
height: 100%;
width: 100%;
display: flex;
align-items: center;
justify-content: center;
vertical-align: middle;
}
</style>
<div id="over">
<img src="test.png" alt="test" width="600">
</div>