3

css3 ボックス シャドウを持つ 2 つの重複する div があります。問題は、z-index を設定しても、div のボックス シャドウの 1 つを削除する必要があることです。負のスプレッドとゼロ値が使用されているケースを見てきましたが、ここでは機能しないと思います。

私が今持っているコードは次のとおりです。

#bulb-top {
    position: relative;
    width: 280px;
    height: 280px;
    background-color: #E5F7A3;
    -webkit-border-radius: 280px;
    -moz-border-radius: 280px;
    border-radius: 280px;
    border: 8px solid #FFF40C;
    top: -430px;
    margin-left: auto;
    margin-right: auto;
    -webkit-box-shadow: 0px 0px 15px 1px #FFF40C;
    -moz-box-shadow: 0px 0px 15px 1px #FFF40C;
    box-shadow: 0px 0px 15px 1px #FFF40C;
    z-index: 4;
}

#bulb-bottom {
    position: relative;
    width: 140px;
    height: 120px;
    background-color: #E5F7A3;
    -moz-border-radius-topleft: 0px;
    -moz-border-radius-topright: 0px;
    -moz-border-radius-bottomright: 30px;
    -moz-border-radius-bottomleft: 30px;
    -webkit-border-radius: 0px 0px 30px 30px;
    border-radius: 0px 0px 30px 30px;
    border-left: 8px solid #FFF40C;
    border-right: 8px solid #FFF40C;
    border-bottom: 8px solid #FFF40C;
    top: -455px;
    margin-left: auto;
    margin-right: auto;
    -webkit-box-shadow: 0px 0px 15px 1px #FFF40C;
    -moz-box-shadow: 0px 0px 15px 1px #FFF40C;
    box-shadow: 0px 0px 15px 1px #FFF40C;
    z-index: 5;
}

http://jsfiddle.net/minitech/g42vq/3/

4

1 に答える 1

5

疑似要素を使用して::before、ボックス シャドウの片側をブロックできます。完璧ではありませんが、あなたの状況には十分かもしれません。更新された jsFiddle は次のとおりです。

#bulb-bottom:before {
    background-color: #E5F7A3;
    content: '';
    display: block;
    height: 30px;
    margin: 0 auto;
    position: relative;
    top: -10px;
    width: 140px;
}​
于 2012-04-07T23:22:40.963 に答える