填充图像叠加CSS

时间:2015-02-17 13:01:02

标签: html css overlay

我想在图像上创建叠加层,但它需要有20px的插入。唯一的问题是我在覆盖层上使用宽度:100%和高度:100%,因此20px填充不起作用。我接下来尝试的是以下内容:

<div class="projectwrapper">
<div class="projectOverlayInset">
    <div class="projectOverlay"></div>
</div>
    <img class="projectImage" src="http://upload.wikimedia.org/wikipedia/commons/6/66/Tower_Bridge_opening_at_night_for_a_ferry.jpg" style="display:block" />
</div>

CSS:

.projectwrapper {
position: relative;
padding-bottom: 75%;
height: 0;
overflow: hidden;
}

.projectwrapper img {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
}

img {
max-width: 100%;
margin-left: auto;
margin-right: auto;
border: 0;
}

.projectOverlay {
position: absolute;
z-index: 20;
width: 100%;
height:100%;
top:0;
left:0;
background-color: rgba(0,0,0,0.6);
box-sizing: border-box;
}

.projectOverlayInset {
box-sizing: border-box;
padding: 20px;
}

JSFIDDLE

但我无法让它发挥作用。即使没有使用盒子大小的技巧。

我认为这是一个非常简单的问题哈哈。

先谢谢。

映入眼帘,

的Wouter

2 个答案:

答案 0 :(得分:3)

您可以从叠加层更改absolute定位到容器projectOverlayInset,填充对您不起作用,因为叠加层已超出absolute的流量:< / p>

.projectwrapper {
  position: relative;
  padding-bottom: 75%;
  height: 0;
  overflow: hidden;
}
.projectwrapper img {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
img {
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  border: 0;
}
.projectOverlay {
  height: 100%;
  background-color: rgba(255, 0, 0, 0.6);
  box-sizing: border-box;
}
.projectOverlayInset {
  position: absolute;
  z-index: 20;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  box-sizing: border-box;
  padding: 20px;
}
<div class="projectwrapper">
  <div class="projectOverlayInset">
    <div class="projectOverlay"></div>
  </div>
  <img class="projectImage" src="http://upload.wikimedia.org/wikipedia/commons/6/66/Tower_Bridge_opening_at_night_for_a_ferry.jpg" style="display:block" />
</div>

答案 1 :(得分:1)

如果我正确理解了要求,则根本不需要inset div。

可以使用calc:_

定位叠加层并调整尺寸

&#13;
&#13;
.projectwrapper {
  position: relative;
  padding-bottom: 75%;
  height: 0;
  overflow: hidden;
}
.projectwrapper img {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
img {
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  border: 0;
}
.projectOverlay {
  position: absolute;
  z-index: 20;
  width: calc(100% - 40px);
  height: calc(100% - 40px);
  top: 20px;
  left: 20px;
  background-color: rgba(255, 0, 0, 0.6);
  box-sizing: border-box;
}
&#13;
<div class="projectwrapper">
  <div class="projectOverlay"></div>
  <img class="projectImage" src="http://upload.wikimedia.org/wikipedia/commons/6/66/Tower_Bridge_opening_at_night_for_a_ferry.jpg" style="display:block" />
</div>
&#13;
&#13;
&#13;