垂直居中的100%高度div未达到Firefox

时间:2015-09-04 12:29:04

标签: css firefox

这是代码

<style>
.test{
  position:absolute;
  width:100px;
  height:100%;
  top:50%;
  transform:translateY(-50%);
  background:blue;
}
</style>
<div class="test"></div>

这是一幅它的样子。我在Chrome和IE中对此进行了测试,但没有出现差距。

enter image description here

如果我将高度设置为100% 100vh或绝对高度(以像素为单位),则差距仍然存在。我使用的是Firefox 40,因此浏览器是最新的。

此外,对于任何想知道为什么要将高度为100%的div居中的人来说,无论屏幕的方向如何,它都会居中。

修改
对于那些建议设置margin:0的人,遗憾的是它无法解决问题

澄清问题。

显然这是渲染引擎中的舍入错误。因为如果更改窗口的高度,则会出现间隙并消失。 Chrome似乎显示出一个微小的差距,但它几乎无法区分。要查看问题,请尝试更改此小提琴中的框架高度http://jsfiddle.net/m4yqoq4w/。我认为这也意味着没有简单的方法来解决问题。

3 个答案:

答案 0 :(得分:0)

margin:0;添加到正文

之前:http://jsfiddle.net/m4yqoq4w/ 之后:http://jsfiddle.net/2umLokj4/

答案 1 :(得分:0)

这将解决它:

 body{
    margin: 0;
 }

答案 2 :(得分:0)

如果你减少&#34; top&#34;属性值如下,你永远不会得到差距

top:49%;