我有一个display:flex容器,其中包含一个图像和一个div,图像的宽度为100%,并且div必须在容器中水平和垂直居中(具有flex属性)。为了使图像显示在图像的顶部,我使用position:absolute。问题在于,在IE11上,定位的绝对div始终显示在流之外。
这是我的HTML:
<div class="container shop-service">
<img class="img-container" src="/_ui/responsive/theme-lambda/services/image-services.jpg">
<div class="shop-service-content">
<div class="shop-service-img">
<img alt="ecommerce" src="/_ui/responsive/theme-lambda/services/ecommerce.svg"></div>
<h2>E-commerce</h2>
<p class="col-md-12">Poderá fazer os seus pedidos a qualquer hora do dia, 365 días por ano, de forma
segura, ágil e confidencial.</p> <a class="btn btn-primary" href="/Open-Catalogue/c/1">Comprar agora</a>
</div>
</div>
这是我的CSS:
.shop-service {
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
padding-top: 35px;
padding-bottom: 35px;
position: relative;
}
.shop-service img {
width: 100%;
height: auto;
}
.shop-service .shop-service-content {
position: absolute;
width: 100%;
max-width: 400px;
padding: 0 15px;
}
答案 0 :(得分:0)
尝试添加top:0声明;进入您的.shop-service .shop-service-content
类。
答案 1 :(得分:0)
尝试指定父容器.shop-service
的高度
答案 2 :(得分:0)
在IE中使用flexbox和绝对位置来解决问题是正常的。
一种更推荐的方法是使用 transform:translate()属性。
您可以结合使用Flexbox和transform:translate,因为后者不会影响前者。
我已经做了一个样本,也许您可以参考。
HTML。
<div class="container shop-service">
<img class="img-container" src="Images/test7.jpg" />
<div class="shop-service-content">
<div class="shop-service-img">
<img alt="ecommerce" src="Images/test6.jpg" />
</div>
<h2>E-commerce</h2>
<p class="col-md-12">
Poderá fazer os seus pedidos a qualquer hora do dia, 365 días por ano, de forma
segura, ágil e confidencial.
</p> <a class="btn btn-primary" href="#">Comprar agora</a>
</div>
</div>
CSS。
.shop-service {
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
padding-top: 35px;
padding-bottom: 35px;
position: relative;
}
.shop-service .shop-service-content {
position: absolute;
width: 100%;
max-width: 400px;
padding: 0 15px;
left: 50%;
top: 50%;
transform: translate(-50%,-50%);
}
.shop-service img {
width: 100%;
height: auto;
}
结果屏幕截图:jfiddle