1. ホーム
  2. css

[解決済み] 1つの要素に2つのCSS3ボックスシャドウを使用する方法はありますか?

2022-04-21 18:57:04

質問

Photoshopのモックアップで、2つの影がついたボタンスタイルを再現しようとしています。最初の影は内側の軽いボックス影(2px)で、2番目はボタン自体の外側のドロップ影(5px)です。

Photoshopでは、インナーシャドウとドロップシャドウで簡単にできます。CSSでは、どちらか一方を指定することはできますが、両方を同時に指定することはできません。

以下のコードをブラウザで試してみると、ボックスシャドウが挿入されたボックスシャドウを上書きしていることがわかると思います。

以下は、挿入されたボックスシャドウです。

box-shadow: inset 0 2px 0px #dcffa6;

そして、ボタンのドロップシャドウはこのようにしたいと思います。

box-shadow: 0 2px 5px #000;

参考までに、私のボタンの完全なコード(グラデーションとすべて含む)を示します。

button {
    outline: none;
    position: relative;
    width: 160px;
    height: 40px;
    font-family: 'Open Sans', sans-serif;
    color: #fff;
    font-weight: 800;
    font-size: 12px;
    text-shadow: 0px 1px 3px black; 
    border-radius: 3px;
    background-color: #669900;
    background: -webkit-gradient(linear, left top, left bottom, from(#97cb52), to(#669900));
    background: -moz-linear-gradient(top, #97cb52, #669900);
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#97cb52', endColorstr='#669900');
    box-shadow: inset 0 2px 0px #dcffa6;
    box-shadow: 0 2px 5px #000;
    border: 1px solid #222;
    cursor: pointer;
}

解決方法は?

影をカンマで区切って表示することができます。

box-shadow: inset 0 2px 0px #dcffa6, 0 2px 5px #000;