如何使包含 div 溢出隐藏在包含 div 的内部

Posted

技术标签:

【中文标题】如何使包含 div 溢出隐藏在包含 div 的内部【英文标题】:How do I make a containing div overflow hidden inside it's containing div 【发布时间】:2022-01-24 05:08:16 【问题描述】:

我正在尝试为这个简单的计算器应用程序提供“光亮”,就像您在灯光下在手机屏幕上看到的那样。我所做的是我在包含的 div 中放置了一个用于发光的 div,这是电话形状,但我无法做到,所以溢出对于发光 div 是隐藏的。

希望对当前代码sn-ps有所帮助:

<div class="phone-container">
        <div class="light-sheen"></div>
        <div class="upper-icons">
.phone-container 
    height: 750px;
    width: 400px;
    background: rgb(0, 0, 0);
    border-radius: 60px;
    border: 5px solid rgb(172, 172, 172);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    padding: 20px;
    padding-bottom: 50px;
    overflow: hidden;


.light-sheen 
    width: 900px;
    height: 450px;
    background-color: white;
    position: absolute;
    bottom: 0px;
    transform: rotateZ(-35deg);
    opacity: 0.1;

感谢任何帮助,谢谢!

【问题讨论】:

【参考方案1】:

由于您在 light-sheen 上使用 position: absolute;,因此无法隐藏溢出部分。

改为使用浅色position: relative;

.light-sheen 
    width: 900px;
    height: 450px;
    background-color: white;
    position: relative;
    bottom: 0px;
    transform: rotateZ(-35deg);
    opacity: 0.1;

【讨论】:

哦,我的困惑解开了,谢谢!不过有一件事,我在 .phone-container 上使用了 scale ,它在 .light-sheen上应用了 overflow: hidden >,尽管它仍然使用 position: absolute?我很困惑为什么当我没有在包含的 div 上使用 scale 属性时它不起作用,但是嘿它起作用了,所以我没有抱怨哈哈 看看MDN document,我想这就是你要找的。 如果该属性的值不是none,则将创建一个堆叠上下文。在这种情况下,该元素将充当任何位置的包含块:固定;或位置:绝对;它包含的元素。

以上是关于如何使包含 div 溢出隐藏在包含 div 的内部的主要内容,如果未能解决你的问题,请参考以下文章

位置绝对和溢出隐藏

如何检测溢出的 HTML 元素

如何在div中隐藏滚动条[重复]

mouseMove上的水平滚动 - 较小div中的宽div与溢出:隐藏(无法使数学工作)

带有溢出隐藏约束的 Jquery 在包装器内部进行动画处理

如何获得溢出的真实 .height():隐藏或溢出:滚动 div?