所以,我正在使用flexbox垂直居中2个div,它以所有主流浏览器为中心,但它并没有在IE11上正确居中。
搜索这个我发现有一个问题,以最小高度为中心的div,但我没有使用它,所以我不知道什么是错的或丢失。
.container {
position: relative;
display: flex;
align-items: center;
}
img {
max-width: 100%;
}
.prev {
width: 40px;
height: 40px;
background: rgba(0,0,0,.8);
position: absolute;
left: 30px;
}
.next {
width: 40px;
height: 40px;
background: rgba(0,0,0,.8);
position: absolute;
right: 30px;
}
<div class="container">
<img src="https://www.w3schools.com/css/trolltunga.jpg">
<div class="prev"></div>
<div class="next"></div>
</div>
答案 0 :(得分:0)
您可以移除弹性箱规则,而是使用transform
...
.container {
position: relative;
}
img {
max-width: 100%;
display: block;
/* added */
}
.prev,
.next {
top: 50%;
transform: translateY(-50%);
width: 40px;
height: 40px;
background: rgba(0, 0, 0, .8);
position: absolute;
}
.prev {
left: 30px;
}
.next {
right: 30px;
}
&#13;
<div class="container">
<img src="https://www.w3schools.com/css/trolltunga.jpg">
<div class="prev"></div>
<div class="next"></div>
</div>
&#13;
或者,如果您想保留Flexbox规则,可以添加top
,bottom
和margin
属性以满足IE。
.container {
position: relative;
display: flex;
align-items: center;
}
img {
max-width: 100%;
display: block; /* added */
}
.prev,
.next {
top: 0;
bottom: 0;
margin: auto;
width: 40px;
height: 40px;
background: rgba(0, 0, 0, .8);
position: absolute;
}
.prev {
left: 30px;
}
.next {
right: 30px;
}
&#13;
<div class="container">
<img src="https://www.w3schools.com/css/trolltunga.jpg">
<div class="prev"></div>
<div class="next"></div>
</div>
&#13;