border-radius
とbox-shadow
を使用して、要素の周囲を光らせています。
box-shadow
の上部のみを削除できますか?
div {
margin-top: 25px;
color: #fff;
height: 45px;
margin-top: -5px;
z-index: -10;
padding: 26px 24px 46px;
font-weight: normal;
background: #000; /*#fff;*/
border-top: 0px solid #e5e5e5;
border-left: 1px solid #e5e5e5;
border-right: 1px solid #e5e5e5;
border-bottom: 1px solid #e5e5e5;
-webkit-border-radius: 3px;
-khtml-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
-webkit-box-shadow: rgba(200,200,200,0.7) 0px 0px 10px 0px;
-khtml-box-shadow: rgba(200,200,200,0.7) 0px 0px 10px 0px;
-moz-box-shadow: rgba(200,200,200,0.7) 0px 0px 10px 0px;
box-shadow: rgba(200,200,200,0.7) 0px 0px 10px 0px;
}
編集:この小さなものは問題です!
これは機能しますが、より良い方法があるかどうか(またはラッパー要素を追加せずに可能かどうか)を知らないことを認めます。複数のbox-shadow
sを使用するのは良い考えですが、同じように見せることはできません。
参照:http://jsfiddle.net/thirtydot/8qEUc/3/
HTML:
<div id="bla">
<div> something </div>
</div>
CSS:
#bla {
overflow-y: hidden;
padding: 0 10px 10px 10px;
margin: 0 -10px
}
#bla > div {
/* the CSS from your question here */
}
ボックスシャドウを使用するので、擬似要素を使用して作成し、divの下に配置して、必要な部分のみが表示されるように配置できます。 http://jsfiddle.net/kL8tR/60/
重要な注意事項がいくつかあります。
z-index: -1
が必要ですposition: relative
を含める必要があり、z-index
は含めないでください擬似要素+ CSS3 =素晴らしさ:)
@milo;上枠ではなく、コードで指定するshadow
です。
トップグローを削除するには、シャドウの垂直方向の間隔を定義する必要があります。
これをあなたのシャドウCSSに書いてください:
box-shadow:0 3px 6px 0 rgba(200, 200, 200, 0.7) ;
-moz-box-shadow:0 3px 6px 0 rgba(200, 200, 200, 0.7) ;
-webkit-box-shadow:0 3px 6px 0 rgba(200, 200, 200, 0.7) ;
-khtml-box-shadow:0 3px 6px 0 rgba(200, 200, 200, 0.7) ;
&あなたはここから生成できます http://css3generator.com/
注:シャドウには4つのプロパティがありますhorizontal, vertical, blur & spread
内側の影にはinset
を定義できます
以下を試すことができます。私の方法はCSSのみを使用します。
リンクの例:http://jsfiddle.net/kL8tR/56/
div{
margin-top: 25px;
color: #fff;
height: 45px;
padding: 26px 24px 46px;
border-left: 1px solid #e5e5e5;
border-right: 1px solid #e5e5e5;
border-bottom: 1px solid #e5e5e5;
border-top: none;
-moz-box-shadow: 0 0 10px 1px black, 0px -20px black, 0px 1px 10px rgba(255,255,255,0.7);
-webkit-box-shadow: 0 0 10px 1px black, 0px -20px black, 0px 1px 10px rgba(255,255,255,0.7);
box-shadow: 0 0 10px 1px black, 0px -20px black, 0px 1px 10px rgba(255,255,255,0.7);
}
基本的に私がやっていることは、マルチレイヤーシャドウを作成しているので、最初のシャドウが2番目のレイヤーをオーバーレイし、上部セクションをマスクしています。
これを以前に使用したことがありますが、これが私の参考資料です:
セクションの下を見てください-複数の影を重ねる[ http://www.css3.info/preview/box-shadow/ ]
シャドウを下にシフトして(垂直方向の変位)、シャドウの半径を小さくすることができます(アスタリスクを必要なピクセル数に置き換えますjust上部のシャドウをボックス自体で覆う):
box-shadow: 0 *px 10px 0 rgba(200,200,200,0.7);
負のスプレッド半径を使用し、他のパラメータを調整して、希望する効果が得られるかどうかに合わせて調整します。
div {
height: 100px;
width: 100px;
border: solid 1px black;
-webkit-box-shadow: 5px 5px 10px -6px black;
-moz-box-shadow: 5px 5px 10px -6px black;
box-shadow: 5px 5px 10px -6px black;
}
<div></div>