一起使用 translate 和 calc()
Using translate and calc() together
我有一个垂直放置的元素,如下所示:
position: absolute;
top: 50%;
transform: translateY(-50%)
这会直接在屏幕中间弹出。问题是我有一个页脚,所以 div 总是必须再高 150px 才能使 div.
居中
有没有办法结合 sass 函数或 calc() 来让我的 div 向上移动?
您可以在顶部使用计算器:
top: calc(50% - 150px);
或者负边距可以工作:
margin-top: -150px;
现在大多数现代浏览器在 top
和内部 translateY
上都支持 calc()
。检查以下代码段以供参考。如需浏览器支持,请在 caniuse
中查看
.parent {
height: 200px;
position: relative;
background: #ccc;
}
.child {
position: absolute;
min-height: 50px;
width: 100%;
background: cyan;
top: 50%;
transform: translateY(calc(-50% - 50px));
}
.footer {
position: absolute;
bottom: 0;
height: 50px;
width: 100%;
background: red;
}
<div class="parent">
<div class="child">
</div>
<div class="footer">
</div>
</div>
我有一个垂直放置的元素,如下所示:
position: absolute;
top: 50%;
transform: translateY(-50%)
这会直接在屏幕中间弹出。问题是我有一个页脚,所以 div 总是必须再高 150px 才能使 div.
居中有没有办法结合 sass 函数或 calc() 来让我的 div 向上移动?
您可以在顶部使用计算器:
top: calc(50% - 150px);
或者负边距可以工作:
margin-top: -150px;
现在大多数现代浏览器在 top
和内部 translateY
上都支持 calc()
。检查以下代码段以供参考。如需浏览器支持,请在 caniuse
.parent {
height: 200px;
position: relative;
background: #ccc;
}
.child {
position: absolute;
min-height: 50px;
width: 100%;
background: cyan;
top: 50%;
transform: translateY(calc(-50% - 50px));
}
.footer {
position: absolute;
bottom: 0;
height: 50px;
width: 100%;
background: red;
}
<div class="parent">
<div class="child">
</div>
<div class="footer">
</div>
</div>