Chrome正常,Safari失败。如何兼容? height:100%;
我需要保留Chrome并使用Safari。我的Safari版本10.1.2(12603.3.8)
* {
margin: 0;
padding: 0;
box-sizing: border-box;
outline: none;
}
* ::-webkit-scrollbar {
width: 0;
}
html, body {
height: 100%;
width: 100%;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
flex-direction: column;
}
body {
border: 5px solid red;
}
.d {
height: 100%;
border: 5px solid green;
}

<div class="d"></div>
<div class="d"></div>
&#13;
答案 0 :(得分:0)
似乎是最近涉及flex-direction: column
的Safari渲染错误。你将两个height: 100%
元素放在同一个空间中,它们都以100%的高度渲染并堆叠而不是装入同一个空间。
以下是两个解决方案:
将height: 100%
更改为height: 50%
,以便这两个元素都是其父级的一半,或者......
删除height
属性并添加flex: 1
,以便两个孩子在父母的空间中尽可能大,并自动分成50/50。
* {
margin: 0;
padding: 0;
box-sizing: border-box;
outline: none;
}
*::-webkit-scrollbar {
width: 0;
}
html,
body {
height: 100%;
width: 100%;
display: flex;
flex-direction: column;
}
body {
border: 5px solid red;
}
.d {
height: 50%;
border: 5px solid green;
}
<div class="d"></div>
<div class="d"></div>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
outline: none;
}
*::-webkit-scrollbar {
width: 0;
}
html,
body {
height: 100%;
width: 100%;
display: flex;
flex-direction: column;
}
body {
border: 5px solid red;
}
.d {
flex: 1;
border: 5px solid green;
}
<div class="d"></div>
<div class="d"></div>