CSS孙代重写溢出:隐藏;?

pn9klfpd  于 2023-03-14  发布在  其他
关注(0)|答案(1)|浏览(169)

在以下HTML结构(parentchildgrandchild)中,父级具有overflow:hidden;属性

<div id="parent">
    <div id="child">        
        <div id="grandchild">
        </div>  
    </div>
</div>

grandchild元素可以覆盖父元素的溢出隐藏吗?
我主要担心的是

  • 孙子的位置与子的位置相关。
  • 由于子节点的位置与父节点的位置相关,因此在滚动时,子节点必须与父节点一起移动。
  • 孙子的样式(font-sizefont-family ...)从子继承。

与孙级不同,子级不能在父级之外可见。
我已经尝试了很多事情。没有一件事奏效,我开始怀疑我想做的事情是否可能。
在下面的JSFiddle中,蓝色框应该是半可见的,但是绿色框应该是完全可见的。
https://jsfiddle.net/Imabot/qs0625Lr/13/

yshpjwxd

yshpjwxd1#

更新The only drawback is that it does not solution does not support scrolling

在这次更新中,我们添加了一个容器来保存子节点。我们将该容器转换到父节点的底部,而不是使用#child作为容器。此代码片段允许您使用原始转换代码,而不是使用bottom

body {
height: 1000px;
}

* {
    margin:0;
}

#parent {
    background: rgba(255, 0, 0, 0.5);   
    width: 200px;
    height: 100px;
}

.container {
  position: relative;
  transform: translateY(60px);
}

/* Must not be visible outside the parent */
#child {
    background-color: blue;
    opacity: 0.4;
    width: 60px;
    height: 40px;
}

/* Must be visible outside the parent */
#grandchild {
    position: absolute;
    background-color: green;
    opacity: 0.5;
    width: 60px;
    height: 60px;
    transform: translateX(100px);
}
<div id="parent">
  <div class="container">
    <div id="child">        
        <div id="grandchild">
        </div>  
    </div>
  </div>
</div>

固定代码不滚动
以您当前的代码,这似乎是不可能的。但是如果您将您的#child的代码从transform: translateY(60px);更改为bottom: -60px,将您的#grandchild更改为position: fixed,代码将按您的预期运行。
一个二个一个一个

相关问题