这是代码
<style>
.test{
position:absolute;
width:100px;
height:100%;
top:50%;
transform:translateY(-50%);
background:blue;
}
</style>
<div class="test"></div>
这是一幅它的样子。我在Chrome和IE中对此进行了测试,但没有出现差距。
如果我将高度设置为100%
100vh
或绝对高度(以像素为单位),则差距仍然存在。我使用的是Firefox 40,因此浏览器是最新的。
此外,对于任何想知道为什么要将高度为100%的div居中的人来说,无论屏幕的方向如何,它都会居中。
修改
对于那些建议设置margin:0
的人,遗憾的是它无法解决问题
澄清问题。
显然这是渲染引擎中的舍入错误。因为如果更改窗口的高度,则会出现间隙并消失。 Chrome似乎显示出一个微小的差距,但它几乎无法区分。要查看问题,请尝试更改此小提琴中的框架高度http://jsfiddle.net/m4yqoq4w/。我认为这也意味着没有简单的方法来解决问题。
答案 0 :(得分:0)
将margin:0;
添加到正文
之前:http://jsfiddle.net/m4yqoq4w/ 之后:http://jsfiddle.net/2umLokj4/
答案 1 :(得分:0)
这将解决它:
body{
margin: 0;
}
答案 2 :(得分:0)
如果你减少&#34; top&#34;属性值如下,你永远不会得到差距
top:49%;