仅覆盖父图像的子元素

时间:2014-05-13 13:10:07

标签: html css html5 css3

我有一个菜单,我想要一个活动状态和菜单项的悬停状态。我的问题在两张图片中得到了最好的说明。绿色背景颜色应仅覆盖深橙色区域(即图像)。

这是我的菜单:

enter image description here

这就是我想要的方式:

enter image description here

哪种方式最好切割绿色元素的底部以获得此效果?

我的代码到目前为止在JSFIDDLE:

http://jsfiddle.net/HC5qC/

CSS:

nav ul {
    padding: 0;
    list-style-type: none;
    position: absolute;
    right: 96px;
    top: 37px;
}

nav li {
    float: left;
}

nav a {
    text-decoration: none;
    font-weight: 400;
    font-size: .9375em;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #fff;
    padding: 54px 15px 65px 15px;
    overflow: hidden;

}

.current-menu-item a,
.current-menu-item a:hover {
    background: #79bd8f; /* Old browsers */
    background: -moz-linear-gradient(top,  #79bd8f 30%, #00a388 99%); /* FF3.6+ */
    background: -webkit-gradient(linear, left top, left bottom, color-stop(30%,#79bd8f), color-stop(99%,#00a388)); /* Chrome,Safari4+ */
    background: -webkit-linear-gradient(top,  #79bd8f 30%,#00a388 99%); /* Chrome10+,Safari5.1+ */
    background: -o-linear-gradient(top,  #79bd8f 30%,#00a388 99%); /* Opera 11.10+ */
    background: -ms-linear-gradient(top,  #79bd8f 30%,#00a388 99%); /* IE10+ */
    background: linear-gradient(to bottom,  #79bd8f 30%,#00a388 99%); /* W3C */
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#79bd8f', endColorstr='#00a388',GradientType=0 ); /* IE6-9 */

}

nav a:hover {
    background: #6b1600;
    background: rgba(107, 22, 0, 0.2);
}

1 个答案:

答案 0 :(得分:0)

我想知道像FIDDLE这样的东西可能会让你开始。

我会多玩一点,看看我们能达到你想要的程度。

但是这个概念是在:之后或:之前,或者一个绝对定位的“叠加”,并且能够点击后面的方框。

CSS

.selector {
    width: 295px;
    height: 100px;
    overflow: hidden;
    background-color: transparent;
    position: relative;
}
.button1 {
    float: left;
    width: 32%;
    height: 100%;
    border: 1px solid white;
    background-color: blue;
}
.selector:after {
    content: '';
    width: 300px;
    height: 30px;
    position: absolute;
    top: 85px;
    left: 0px;
    transform: rotate(-3deg);
    background-color: red;
}