我只在Safari(6.1 os x)中看到这个问题
当父div被设置为position:fixed overflow:hidden并且子div被设置为position:fixed并且其中一部分溢出父级,它被切断。
在Chrome和Safari中查看此jsfiddle以了解我的意思:http://jsfiddle.net/y2dg65y7/3/
<div class="wrapper">
<div class="inner">
Why is cut off in Safari?
</div>
</div>
.wrapper{
background-color: red;
width: 200px;
overflow: hidden;
height: 400px;
position: fixed;
}
.inner{
background-color: silver;
padding: 20px;
width: 400px;
height: 200px;
position: fixed !important;
top: 50px;
left: 40px;
}
这是Safari中的错误吗? 有任何想法吗?解决方法?
谢谢! - = B = -
答案 0 :(得分:2)
不确定这是否是您想要的,但这可行
溢出:可见;
.wrapper{
background-color: red;
width: 200px;
overflow: visible;
height: 400px;
position: fixed;
}
答案 1 :(得分:2)
我在macOS Catalina 10.15的Safari 13.0.2中找到了适用于我的解决方案。
诀窍是将position: fixed
和overflow: hidden
分成两个div,就像这样:
<div class="wrapper">
<div class="wrap2">
<div class="inner">
Great success in safari 13.0.2 on MacOS Catalina 10.15
</div>
</div>
</div>
.wrapper{
background-color: red;
padding: 40px;
width: 200px;
height: 400px;
position: fixed;
top: 0;
left: 0;
}
.wrap2{
background-color: yellow;
overflow: hidden;
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
.inner{
background-color: silver;
padding: 20px;
width: 400px;
height: 200px;
position: fixed !important;
top: 50px;
left: 40px;
}
还有一个JS小提琴:https://jsfiddle.net/jxmallett/gsyb326v/1/
编辑:确认此功能可在iPad上的iOS 12.3.1的Safari中使用。