没有scale
代码可以正常工作,但我需要垂直居中已经缩放元素。我正在寻找使用CSS或JS方法的解决方案。
另外我不能使用transform-origin
CSS属性,因为在某些我需要支持的浏览器中它不受支持...
https://jsfiddle.net/o62ja9r6/17/
.container {
position: fixed;
border: 2px dashed blue;
width: 400px;
height: 300px;
}
.slide {
position: absolute;
width: 76px;
height: 169px;
background-color: red;
}
.vertical-center {
top: 50%;
transform: scale(0.4) translateY(-50%);
/* transform: translateY(-50%); // <--- it works */
}
<div class="container">
<div class="slide vertical-center">
</div>
</div>
答案 0 :(得分:3)
订单很重要,请与translateY
交换scale
。
.container {
position: fixed;
border: 2px dashed blue;
width: 400px;
height: 300px;
}
.slide {
position: absolute;
width: 76px;
height: 169px;
background-color: red;
}
.vertical-center {
position: relative;
top: 50%;
transform: translateY(-50%) scale(0.4);
}
&#13;
<div class="container">
<div class="slide vertical-center">
</div>
</div>
&#13;
快速爆炸
如果你有一个100px
高的元素,并且你沿着y轴将其-50%
翻译,它将向上移动50%的高度,即50px
1}}。如果您将100px
高元素首先(最低为40%
的高度缩放,那么当您尝试翻译时,它会40px
高它沿着y轴,只会向上移动20px
。
答案 1 :(得分:2)
您可以使用简单translate
来代替CSS
而不是.vertical-center {
top: 0;
left:0px;
bottom:0px;
right:0px;
margin: auto;
transform: scale(0.4);
}
datetime
用于工作演示click here