css显示图像20 px外div

时间:2016-12-07 09:03:06

标签: css

我对css有疑问。如何显示div总是比父元素大20px。所以如果我改变大小,div应该占宽度的100%,然后每边多20px。

4 个答案:

答案 0 :(得分:1)

你可以让孩子div absolute定位于父母(假设它是position: relative

然后,您可以将孩子设置为与父亲的宽度和身高相匹配,然后"拉伸"它通过添加填充和负定位值进行补偿......

请注意,红色方块是父级,半透明叠加层是孩子。



body {
  margin-top: 50px;
}
.parent {
  width: 200px;
  height: 200px;
  background: red;
  position: relative;
  margin: 0 auto;
}
.child {
  position: absolute;
  top: -20px;
  bottom: -20px;
  left: -20px;
  right: -20px;
  content: " ";
  background: rgba(0,0,0,0.4);
  padding: 20px;
  width: 100%;
  height: 100%;
}

<div class="parent">
  <div class="child">
  </div>
</div>
&#13;
&#13;
&#13;

请注意:我确信有一种更优雅的方式来实现这一点,而不是我所做的,但它似乎在任何情况下都有效!

答案 1 :(得分:0)

您是否尝试过calc()

width: calc(100% + 20px)

每边加20px:

height: calc(100% + 40px)
margin: -20px 0 0 -20px
width: calc(100% + 60px)

..或

height: calc(100% + 40px)
transform: translate3d(-20px,-20px,0)
width: calc(100% + 60px)

答案 2 :(得分:0)

为什么不反过来呢?父母应该大20px。

如果你真的需要这个,你可以这样做:

.parent{
    position:relative;
    width:100px;
    height:100px;
}

.parent .child{
    width:calc(100% + 40px);
    height:calc(100% + 40px);
    position:absolute;
    left:-20px;
    top:-20px;
}
<div class="parent">
    parent
    <div class="child">
        child
    </div>
</div>

答案 3 :(得分:0)

这里使用cal()函数的另一个解决方案。

 Here is JSfiddle: https://jsfiddle.net/arifkarim/ohmfaj2d/