2017-06-21 109 views
1

我有一个方形父容器,在所有4边都有2%的填充。我有一个较小的矩形溢出底部。我设置相对于它的父容器的形状的高度。我知道我可以使用overflow:hidden,但它只包含子元素,它不会使孩子尊重父母的填充。使父母填充切断子元素

.parent { 
 
    border-radius: 15px; 
 
    background: #cccac9; 
 
    position: absolute; 
 
    top: 50%; 
 
    left: 50%; 
 
    height: 30%; 
 
    width: 60%; 
 
    transform: translate(-50%, -50%); 
 
    padding: 2%; 
 
    overflow:hidden; 
 
} 
 
    
 
.child { 
 
    background: #1c1c1c; 
 
    position: relative; 
 
    height: 30%; 
 
    color: White; 
 
    text-align: center; 
 
    padding-top: 8px; 
 
}
<div class='parent'> 
 
    <div class='child'></div> 
 
</div>

Item I'm working with.

的灰色背景是父,在底部的黑盒子是它的孩子。底部的黑色方块在灰色父容器的填充物上流血。

+0

我不明白的问题。 *的元素X%height *是什么? – sheriffderek

+0

我会更新问题以使其更清晰,对不起。 – ecain

+0

该示例可以大大简化:https://jsfiddle.net/sheriffderek/ctmqrhhy/ - 您的其他CSS可能是原因 - 所以最好从最基本的rue开始。 – sheriffderek

回答

0

您可以将您的孩子包装到自己的容器中,然后在该容器上设置overflow: hidden。我也会将其高度设置为100%。

.parent { 
 
    border-radius: 15px; 
 
    background: #cccac9; 
 
    position: absolute; 
 
    top: 50%; 
 
    left: 50%; 
 
    height: 30%; 
 
    width: 60%; 
 
    transform: translate(-50%, -50%); 
 
    padding: 2%; 
 
} 
 
.child-container { 
 
    overflow: hidden; 
 
    height: 100%; 
 
} 
 
.child { 
 
    background: #1c1c1c; 
 
    color: White; 
 
    text-align: center; 
 
    padding-top: 8px; 
 
}
<div class='parent'> 
 
    <div class='child-container'> 
 
    <div class="child"> 
 
     <p>This is my text</p> 
 
     <p>This is my text</p> 
 
     <p>This is my text</p> 
 
     <p>This is my text</p> 
 
     <p>This is my text</p> 
 
     <p>This is my text</p> 
 
     <p>This is my text</p> 
 
    </div> 
 
    </div> 
 
</div>

+0

通过此代码,行为似乎是黑盒子适合我放入文本等任何内容。如果我输入足够的文本,它仍然会覆盖,所以包装器中的“overflow:hidden”似乎不会影响它。 – ecain

+0

你有完整的代码显示吗?在什么浏览器下?上面的代码似乎对我很好。 –

+0

我正在使用Chrome。 – ecain