我在其他div
元素中垂直对齐div
个元素。
我正在使用position: relative; transform: translateY(-50%); top: 50%
对齐它们。这很好。
我现在想要扩展元素(使用jQuery插件'Transit')。
当我缩放子div
元素时,它们会移出垂直对齐方式(https://i.imgur.com/wWTJSSj.png第二个绿色框已应用transform: scale(1.5)
。
有什么方法吗?
答案 0 :(得分:0)
听起来你忘了第二个transform
将完全覆盖原始的<{1}}。第二个转换应 transform: translateY(-50%) scale(1.5);
.container {
height: 100vh;
padding-top: .25em;
}
.box {
height: 2em;
width: 3em;
background: limegreen;
float: left;
margin: .5em;
position: relative;
transform: translateY(-50%);
top: 50%;
transition: transform .3s ease;
}
.tall {
height: 4em;
}
.box:hover {
transform: translateY(-50%) scale(1.5);
}
&#13;
<div class="container">
<div class="box"></div>
<div class="box tall"></div>
<div class="box"></div>
<div class="box"></div>
</div>
&#13;
但坦率地说,这种对齐技术并不是必需的。使用
display:inline-block
vertical-align:middle
或仅使用flexbox和align-items:center
,可以更简单地对齐这些子项
<强>内联块强>
.container {
height: 100vh;
padding-top: .25em;
}
.box {
height: 2em;
width: 3em;
display: inline-block;
vertical-align: middle;
background: limegreen;
margin: .5em;
transition: transform .3s ease;
}
.tall {
height: 4em;
}
.box:hover {
transform: scale(1.5);
}
&#13;
<div class="container">
<div class="box"></div>
<div class="box tall"></div>
<div class="box"></div>
<div class="box"></div>
</div>
&#13;
<强> Flexbox的强>
.container {
height: 100vh;
padding-top: .25em;
display: flex;
align-items: center;
}
.box {
height: 2em;
width: 3em;
background: limegreen;
margin: .5em;
transition: transform .3s ease;
}
.tall {
height: 4em;
}
.box:hover {
transform: scale(1.5);
}
&#13;
<div class="container">
<div class="box"></div>
<div class="box tall"></div>
<div class="box"></div>
<div class="box"></div>
</div>
&#13;