padding-top不会影响Chrome

时间:2014-02-05 20:54:15

标签: html css google-chrome firefox height

Chrome中出现的问题说明:

problem as seen in chrome

预期的行为和FF一:

expected behaviour as seen in firefox

我们正在创建一个页面, Hybrid Orange ,但填充顶部似乎不会影响Chrome中div Tecnología的高度。我希望div为100%高度,所以滚动的第一个px是下一部分。我不确定是什么导致这种行为在FF和Chrome中有所不同。

HTML的相关部分:

<nav>
  <header id = "bar">
    [...]
  </header>
  <ul>
    [...]
  </ul>
</nav>

<div id = "inicio">
  [...]
</div>

<div id = "tecnologia">
  <div class = "v_center">
    <div class="container clearfix">
      <div id="tecno-web" class="tecno-div">
      [...]
      </div>
    </div>
  </div>
</div>

css的相关部分:

nav {
  position: absolute;
  top: 60%;
  z-index: 100;
  width: 80%;
  height: 4em;
  padding: 0 10%;
  /* Bug of android's browser: http://stackoverflow.com/q/19254146/938236 */
  -webkit-backface-visibility: hidden;
  background-color: #FFF;
  box-shadow: 0 2px 8px -1px gray
  }

#tecnologia {
  display: table;
  position: relative;

  width: 100%;
  padding-top: 4em;
  /* height of this section is 100% (-4em is to compensate the padding-top) */
  height: calc(100% - 4em);

  background-color:#68a4dc;
  background-image: url('/images/fondo_azul.jpg');
  color:#ffffff;
  }

预期的行为是这样的:tecnologia高度是100%,它来自它的实际高度(100% - 4em)+填充顶部的高度。但是,在Chrome中,此填充顶部似乎不会增加Tecnología部分。它在Firefox中的表现与预期的一样。如果我设置height: 100%;它在Chrome中有效,但在Firefox(太长时间)中断,正如预期的高度+填充。

1 个答案:

答案 0 :(得分:4)

如果您想快速解决方法,请尝试使用

#tecnologia {
  display: table;
  position: relative;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;

  width: 100%;
  padding-top: 4em;
  height: 100%;

  background-color:#68a4dc;
  background-image: url('/images/fondo_azul.jpg');
  color:#ffffff;
}

我在Chrome和Firefox中对它进行了测试,似乎解决了这个问题。这里真正的问题是你正在设置

display: table 

为#technologia。 Chrome会自动从高度中减去4em填充,当您将高度设置为100% - 4em时,这是多余的。另一方面,Firefox不会这样做。

理想情况下,您不应该使用表格布局。不同浏览器的表格显示实现非常不协调,您的reset.css不考虑这种特殊情况。