仅在Safari中 - 位置:当父级位置时固定子级被切断:固定且溢出:隐藏

时间:2014-11-02 21:55:33

标签: css safari overflow hidden fixed

我只在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 = -

2 个答案:

答案 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: fixedoverflow: 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中使用。