如何在子div

时间:2017-10-06 10:30:18

标签: css border box-shadow

我有许多重叠的div,我将其视为单一形状。形状需要是半透明的,所以我将它们放在父div中并将不透明度应用于父div,如下所示:

#top_housing_bg_div {
  opacity: 0.55;
  filter: alpha(opacity=55);
}

#top_bg_div {
  z-index: 9999;
  padding: 3px;
  position: absolute;
  width: -webkit-calc(100% - 14px - 9px);
  width: -moz-calc(100% - 14px - 9px);
  width: calc(100% - 14px - 9px);
  top: 7px;
  left: 7px;
  background-color: black;
  color: white;
  font-size: 12px;
  border-radius: 5px;
  overflow: hidden;
}

#logo_bg_div {
  z-index: 9999;
  position: absolute;
  top: 12px;
  left: 12px;
  background-color: black;
  border-radius: 5px;
  overflow: hidden;
  width: 50px;
  height: 50px;
}
<div id="top_housing_bg_div">
  <div id="top_bg_div">
    &nbsp;
  </div>
  <div id="logo_bg_div">
    <!--empty for now-->
  </div>
</div>

我需要一个边框,它遵循那个半透明形状的轮廓(相对于每个具有自己边框的子div,它侵入另一个的半透明体内)我试过 - 并且失败了 - 通过在父div上使用box-shadow,设置边框等来实现这一点。

是否有可能实现我想要实现的目标?

1 个答案:

答案 0 :(得分:1)

由于您已经开始添加特定值(高度,宽度,位置等),您可以使用pseudo-element通过将其添加到较小的div之上来实现此目标,因此,覆盖边界div。

见下文(希望我理解你想要的)

body {
margin:0
}

#logo_bg_div:before {
  height: 20px;
  top: -1px;
  width: calc(100% + 2px);
  background: black;
  position: absolute;
  left: -1px;
  content: "";
}


#top_housing_bg_div {
  opacity: 0.55;
  filter: alpha(opacity=55);
}

#top_bg_div {
  z-index: 9999;
  padding: 3px;
  position: absolute;
  width: -webkit-calc(100% - 14px - 9px);
  width: -moz-calc(100% - 14px - 9px);
  width: calc(100% - 14px - 9px);
  top: 7px;
  left: 7px;
  background-color: black;
  color: white;
  font-size: 12px;
  border-radius: 5px;
  overflow: hidden;
  border: 1px solid red;
}

#logo_bg_div {
  z-index: 9999;
  position: absolute;
  top: 12px;
  left: 12px;
  background-color: black;
  border-radius: 5px;
  width: 50px;
  height: 50px;
  border: 1px solid red;
  position: relative
}
<div id="top_housing_bg_div">
  <div id="top_bg_div">
    &nbsp;
  </div>
  <div id="logo_bg_div">
    <!--empty for now-->
  </div>
</div>