【发布时间】:2017-03-06 16:29:58
【问题描述】:
我正在尝试将两个图像放在彼此的顶部,两个图像在其容器内水平和垂直居中。
其中一张图片将设置不透明度动画以显示下方的图片。
图像大小相同,但我事先不知道图像的大小。我也想用纯 CSS 和 HTML 来做这件事。
这就是我最终的结果。
.data-box{
border: 2px solid #d4d4d4;
border-radius: 3px;
display: flex;
height: 120px;
margin: 5px;
margin-bottom: 10px;
margin-right: 10px;
padding: 0;
position: relative;
width: 120px;
}
.logo {
align-items: center;
display: flex;
justify-content: center;
margin: auto;
position: relative;
}
.data-name {
position: absolute;
width: 100%;
height: 23px;
bottom: 0px;
right: 0px;
background: rgba(200, 200, 200, 0.3);
}
span {
position: absolute;
width: 100%;
bottom: 2px;
text-align: center;
}
img {
position: absolute;
}
<div class="data-box">
<div class="logo">
<img class="grayscale-image" src="https://placeholdit.imgix.net/~text?txtsize=8&txt=65%C3%9765&w=65&h=65" alt="">
<img class="color-image" src="https://placeholdit.imgix.net/~text?txtsize=8&txt=65%C3%9765&w=65&h=65" alt="">
</div>
<div class="data-name"><span>Flickr</span></div>
</div>
我制作了position: absolute 的图像,这样它们就可以离开浏览器的正常流程并直接在彼此之上而不是彼此相邻呈现。
这在 Chrome 中可以正常工作,但在 Firefox 和 Safari 中,图像的左上角水平和垂直居中:
我怎样才能使这些图像水平和垂直居中,同时仍然让它们直接在彼此之上渲染?
【问题讨论】:
标签: html css flexbox css-position