2012-03-20 5 views
20

特定の境界線にどのようにドロップシャドウを適用しますか?ボーダートップにのみドロップシャドウを適用しますか?

header nav { 
    border-top: 1px solid #202020; 
    margin-top: 25px; 
    width: 158px; 
    padding-top:25px; 
} 

が、私は(1ピクセル1ピクセル1ピクセル#cdcdcd)ドロップシャドウをしたいのborder-topにのみ適用:

は例えば、私は、次のコードを持っています。

これを達成する最もよい方法は何ですか?

EDIT

これは私が

div { 
    border-top: 1px solid #202020; 
    margin-top: 25px; 
    margin-left:25px; 
    width: 158px; 
    padding-top:25px; 
    -webkit-box-shadow: 0px 1px 1px rgba(50, 50, 50, 0.75); 
    -moz-box-shadow: 0px 1px 1px rgba(50, 50, 50, 0.75); 
    box-shadow:   0px 1px 1px rgba(50, 50, 50, 0.75); 
} 

探しているものを、本質的であるしかし、影はパディングの影響を受けているようです。パディングを調整することなく、境界線だけに影を付けるにはどうしてですか?

答えて

30

これは何か?

div { 
    border: 1px solid #202020; 
    margin-top: 25px; 
    margin-left:25px; 
    width: 158px; 
    height: 158px; 
    padding-top:25px; 
    -webkit-box-shadow: 0px -4px 3px rgba(50, 50, 50, 0.75); 
    -moz-box-shadow: 0px -4px 3px rgba(50, 50, 50, 0.75); 
    box-shadow:   0px -4px 3px rgba(50, 50, 50, 0.75); 
} 

http://jsfiddle.net/FrEnY/

+0

基本的にはいです。 しかし、私はそれがボーダートップの下にある必要があります。これは可能ですか? – AMC

+1

ああ、いいですね。私はダンブルンデルのフィドルを編集して、シャドーを内側に置く 'inset'プロパティを使用しました。これをチェックしてください:http://jsfiddle.net/FrEnY/4/これは:: beforeを使った私の他の提案より簡単です。 –

2

簡単な答えは、あなたができないということです。 box-shadowは要素全体にのみ適用されます。別の方法を使用してCSSで:: beforeを使用すると、ヘッダのnavに1ピクセルの高要素を挿入し、その代わりにボックスの影を設定することができます。私はこれらの対話型ツールを使用して見つける

+0

例を表示できますか?私はこれのすべてに新しいです、申し訳ありません。 – AMC

+1

W3はダブルコロン( ':: before')表記を使って擬似要素を区別したいが、IEはまだ問題があるようで、シングルコロン版(':before')が必要であることに注意してください。 –

+0

ありがとう@David。それはいつもIEじゃない? –

1

複数のボックスシャドウが私にそれをしました。あなたは要素(inset)の内側に影を適用したいだけあなたは「スプレッド」に負の値を定義することができ、それは1つの側面に表示したい場合には

box-shadow: 
     inset 0 -8px 4px 4px rgb(255,255,255), 
     inset 0 2px 4px 0px rgba(50, 50, 50, 0.75); 

http://jsfiddle.net/kk66f/

8

パラメータ(2番目の例では5番目のパラメータ)。

完全に削除するには、シャドウぼかしと同じサイズ(2番目の例では4番目のパラメータ)を負の値にします。

また、次のようにy位置(第2の例では3番目のパラメータ)にオフセットを追加することを忘れないでください:

box-shadow:   inset 0px 4px 3px rgba(50, 50, 50, 0.75); 

次のようになります。http://jsfiddle.net/FrEnY/1282/

box-shadow:   inset 0px 7px 3px -3px rgba(50, 50, 50, 0.75); 

は、この更新されたフィドルをチェックここのボックスシャドウパラメータについては、http://www.w3schools.com/cssref/css3_pr_box-shadow.asp

0
.item .content{ 
    width: 94.1%; 
    background: #2d2d2d; 
    padding: 3%; 
    border-top: solid 1px #000; 
    position: relative; 
} 
.item .content:before{ 
     content: ""; 
     display: block; 
     position: absolute; 
     top: 0px; 
     left: 0; 
     width: 100%; 
     height: 1px; 
     -webkit-box-shadow: 0px 1px 13px rgba(255,255,255,1); 
     -moz-box-shadow: 0px 1px 13px rgba(255,255,255,1); 
     box-shadow: 0px 1px 13px rgba(255,255,255,1); 
     z-index: 100; 
} 

私はそれのためにそれのようなものを使用するのが好きです。

関連する問題