首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用CSS在div内对图像进行居中?

问如何使用CSS在div内对图像进行居中?
EN

Stack Overflow用户
提问于 2017-04-29 05:09:45
回答 2查看 6.4K关注 0票数 1

这是我的

代码语言:javascript
复制
<div class="overlay">
  <div id="loading">
    <img src="styles/images/30.gif">
  </div>
</div>

我想让它垂直和水平地居中。

该图像仅为水平居中,如下面的屏幕快照所示:

​

我的CSS如下所示:

代码语言:javascript
复制
.overlay {
   background: #e9e9e9;
   display: none;
   position: absolute;
   top: 0;
   right: 0;
   bottom: 0;
   left: 0;
   opacity: .5;
}

#loading {
   text-align: center;
}

#loading img {
   display: table-cell;
   margin: 0 auto;
}

我该怎么做才能使它垂直地居中?提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-29 05:19:42

父元素(#loading)的高度是子元素(img)的高度。因为垂直对齐没有意义。设置较大高度的父元素,则内部元素可以通过任何可用的方法垂直居中。

​

代码语言:javascript
复制
* {
  padding: 0;
  margin: 0;
}

.overlay {
  background: #e9e9e9;
  opacity: 0.5;
}

#loading {
  display: flex;
  height: 100vh;
}

#loading img {
  margin: auto;
}
代码语言:javascript
复制
<div class="overlay">
  <div id="loading">
    <img src="http://placehold.it/160x120">
  </div>
</div>

​

票数 2
EN

Stack Overflow用户

发布于 2017-04-29 05:15:48

有几种方法可以实现垂直对齐,其中许多方法变得复杂。

最简单的修复方法之一是将元素设置为绝对定位,将边距设置为auto,同时将顶部和底部定义为0。

代码语言:javascript
复制
#loading {
    position: relative;
}
#loading img {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin: auto;
}

链接到jsfiddle。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43692007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档