在子悬停时,向容器添加背景颜色

时间:2016-08-14 14:15:20

标签: html css html5 css3 hover

当光标悬停在左侧div时,我需要重叠整个包装器,除了左侧div,黑色,不透明度为0.2。

我怎样才能在css中这样做?感谢。

<div id="wrapper">
  <div id="left">... some elements</div>
  <div id="right">... some elements</div>
</div>

2 个答案:

答案 0 :(得分:3)

你可以通过使用.controller('ClientEditController', function ($scope, $location) { $scope.cancel = function() { if (//I would check if modal mode) { $scope.$dismiss('cancel'); } else { $location.path("/client/list"); } }; }); 颜色来应用非常大的box-shadow黑色并且具有0.2不透明度。

容器(rgba())必须有#wrapper才能隐藏多余的阴影。

&#13;
&#13;
overflow: hidden
&#13;
#wrapper {
  border:1px solid red;
  padding: 1em;
  overflow: hidden;
}

#wrapper > div {
  border: 1px solid blue;
}

#left:hover {
  box-shadow: 0 0 10em 10em rgba(0,0,0,0.2);
}
&#13;
&#13;
&#13;

jsFiddle:https://jsfiddle.net/azizn/sfq252g5/

答案 1 :(得分:3)

您可以使用通用兄弟组合子(〜)和具有绝对位置的div来获得此效果。在该示例中,您将选择具有“.bgr”类的div,该类位于悬停的孩子之后并使其成为粉红色/蓝色。

#wraper {
position:relative;
width:200px;
height:200px;
}
.bgr {
position:absolute;
top:0;
left:0;
width:100%;
height:100%;
background:#fff;
padding:30px;
}
#left, #right {
position:relative;
z-index:1;
width:200px;
height:100px;
border:1px solid #333;
margin:20px;
}
#left{
background:#fff;
}
#right{
background:#f1f1f1;
}
#left:hover {
background:#f9f9f9;
}
#right:hover {
background:#f9f9f9;
}
#left:hover ~ .bgr {
background:blue;
}
#right:hover ~ .bgr {
background:pink;
}
<div id="wrapper">
<div id="left"> ... some elements </div>
<div id="right"> ... some elements </div>
<div class="bgr"></div>
</div>