在Safari中,不假定父元素的max-height限制高度。

这是它在野生动物园中的呈现方式:



我发现的唯一解决方法是也使用max-height属性设置children元素。

码:



html {

  height: 100%;

}

body {

  height: 100%;

  margin: 0;

  padding: 0;

}

.menu-ctn {

  border: 1px solid #ff6a00;

  max-height: 40px;

  height: 100%;

}

.menu-ctn ul {

  height: 100%;

  text-align: center;

  border: 1px solid #00ff21;

  max-height: inherit;    /* Safari only override */  <= Solution

}

.menu-ctn ul li {

  width: 24%;

  display: inline-block;

  vertical-align: middle;

  height: 100%;

  background-color: #0094ff;

  max-height: inherit;    /* Safari only override */  <= Solution
}

<body>
  <div class="menu-ctn">
    <ul>
      <li>X</li>
      <li>Y</li>
    </ul>
  </div>
</body>





预期结果是尊重设置了max-height的父级的所有子级元素:

最佳答案

我在Mac上的Safari 7.1.3和Google Chrome版本41.0.2272.89上进行了测试,两种浏览器都以相同的方式对其进行渲染。



它似乎只是Windows上的Safari问题。尝试使用媒体查询覆盖该属性,该查询使用伪类从Chrome过滤Safari 5+:

@media screen and (-webkit-min-device-pixel-ratio: 0) {
  /* Safari only override */
  ::i-block-chrome, .menu-ctn ul {
    height: 25%;
  }
}

10-02 14:01
查看更多