【问题标题】:parent overlaps child's box-shadow父母重叠孩子的盒子阴影
【发布时间】:2013-03-06 14:07:02
【问题描述】:

我有 2 个 div,一个父级和一个子级,它们都有固定的宽度,子级也有固定的高度,子级 div 向左浮动,它有 box-shadow:0 1px 2px 0 rgba(0,0,0,0.4) 问题是父级 div 与子级的左阴影重叠。

我无法向子元素添加 margin-left,因为它的左侧与父 div 上方的菜单 div 的左侧对齐,因此它必须准确地位于它所在的位置。

我尝试了 z-index,减去父级的边距以及许多其他我什至无法计算的东西,但似乎没有任何东西可以解决问题。 代码是:

#menu {
  width: 100%;
  height: 50px;
  background: #252525;
  margin: 0 auto 20px auto;
}

#wrapper {
  background: #CCC;
  width: 1195px;
  margin: 0 auto;
  clear: both;
  overflow: auto;
  background: none;
  position: relative;
}

#wrapper {
  overflow: hidden;
}

#db_left,
#db_right,
#db_center {
  margin-right: 30px;
  float: left;
}

#db_left {
  width: 170px;
  position: relative;
}

#db_right {
  margin-right: 0 !important;
  width: 315px;
}

#db_center {
  width: 650px;
  margin-top: 20px !important;
}

#profpic_holder {
  width: 150px;
  height: 150px;
  padding: 10px;
  position: relative;
  float: left;
  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
}
<body>
  <div class="wrapper">
    <div class="header">
      Some Content...
    </div>
    <div id="db_left">
      <div id="profpic_holder">
        <img src="#" width="150" height="150" alt="" />
      </div>
      <div id="profname">
      </div>
    </div>
    <div id="db_center">
    </div>
    <div id="db_right">
    </div>
  </div>
</body>

【问题讨论】:

  • 你能创建一个jsfiddle来演示这个问题吗?当我尝试你的代码时,阴影似乎没有被切断,除非我误解了这个问题。

标签: css overflow


【解决方案1】:

修复它。

#wrapperoverflow:hidden,因此在其区域之外看不到任何东西,包括孩子的影子。

我所要做的就是只隐藏顶部和底部的溢出,所以我这样做了:

#wrapper{
  overflow-y:hidden;
}

【讨论】:

    【解决方案2】:

    你拥有它的方式

     -webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.4);
     box-shadow:0 1px 2px rgba(0, 0, 0, 0.4);
    

    不会有左阴影。如果你想让阴影出现在各个方面,请使用这个

     -webkit-box-shadow:0 0 2px 1px rgba(0, 0, 0, 0.4);
     box-shadow:0 0 2px 1px rgba(0, 0, 0, 0.4);
    

    我希望这会有所帮助。

    【讨论】:

    • 由于示例中的 2px 模糊,实际上在左右两侧可以看到非常轻微的 1px 阴影。不过,如果他们正在寻找更突出的阴影,您的建议会有所帮助。
    • 它不像margin我的朋友每个数字都有自己的工作第一个从左到右水平移动阴影,第二个数字垂直移动它,第三个是模糊大小,第四个是大小阴影称为 spread ,请查看此链接:w3schools.com/cssref/css3_pr_box-shadow.asp
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-10
    • 1970-01-01
    • 2011-04-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多