CSS シャドウ効果の比較: ドロップシャドウとボックスシャドウ

CSS シャドウ効果の比較: ドロップシャドウとボックスシャドウ

Drop-shadow と box-shadow はどちらも影効果(ハロー効果)のための CSS プロパティです。両者の最大の違いは、box-shadow は長方形の影しか作成できないのに対し、drop-shadow はオブジェクトの不透明領域とまったく同じ形状の影を作成できることです。 2 つの CSS プロパティの使用方法は次のとおりです。

.ドロップシャドウ {
    -webkit-filter: ドロップシャドウ(12px 12px 7px rgba(0, 0, 0, 0.7));
    フィルター: ドロップシャドウ(12px 12px 7px rgba(0, 0, 0, 0.7))
}

.box-shadow {
    ボックスの影: 12px 12px 7px rgba(0, 0, 0, 0.7);
}

どちらも影効果(ハロー効果)なので、設定できるパラメータ(値)はほぼ同じです。上記の例で言うと、すべてのパラメータ値は左から右に、水平オフセット、垂直オフセット、影のぼかし距離、影の色を表しています。

次に、ドロップシャドウとボックスシャドウをさらに比較します。

境界線と変形効果

ドロップシャドウとボックスシャドウの影はどちらも、境界線の丸い角と変形効果を反映できます。違いは次のとおりです。ドロップ シャドウは実際の境界線の形状を反映し、実線フレームには実線の影が、点線フレームには点線の影が付きます。ボックス シャドウは境界線と内部のコンテンツを完全な正方形として扱い、正方形全体の影を作成しますが、境界線のスタイルは無視され、直接実線フレームとして扱われます。

。箱 {
    境界線: 5px 実線 #262b57;
    幅: 120ピクセル;
    高さ: 120px;
    境界線の半径: 10px;
    変換: 回転(15度);
    フォントサイズ: 40px;
    テキスト配置: 中央;
    行の高さ: 120px;
}

.破線{
    境界線スタイル: 破線;
}

背景と透明性

ボックスに設定された色(透明ではない)がある場合、ドロップシャドウとボックスシャドウの影の効果は似たものになります。ブロックの背景が半透明の場合はどうなりますか?画像から、影の周りの色は暗く、中央の色は明るいことがわかります。そのため、透明度はドロップシャドウには影響しますが、ボックスシャドウには影響しないことが推測できます。

.bk {
    背景色: #ffcc66;
}

.bk-アルファ{
    背景色: rgba(255, 204, 102, 0.3);
}

画像の枠

この例から、drop-shadow は image-border の不規則な形状を反映できるのに対し、box-shadow は border を直接実線フレームとして扱い、border image の形状を無視することがわかります。写真のフクロウは透明な PNG ファイルです。ドロップ シャドウは、境界線の画像の形状だけでなく、境界線内のフクロウの形状も反映します。ボックス シャドウは一貫した原則に従い、境界線と写真を完全な正方形として扱います。

。フレーム {
    幅: 286ピクセル;
    高さ: 240px;
    -moz-border-image: url(frame_green_.png) 25 25 繰り返し;
    -webkit-border-image: url(frame_green_.png) 25 25 繰り返し;
    境界線の幅: 25px;
    境界線画像: url(frame_green_.png) 25 25 繰り返し;
    境界線の色: #79b218;
    境界線スタイル: インセット;
    境界線の幅: 25px;
    ボックスのサイズ: 境界線ボックス;
    表示: ブロック;
    マージン: 10px;
}

擬似要素

疑似要素のドロップシャドウは疑似要素の形状を反映できますが、ボックスシャドウは疑似要素を無視します。

。追加 {
    幅: 100ピクセル;
    高さ: 100px;
    背景色: #ffcc66;
    マージン: 10px 60px;
    位置: 相対的;
    表示: インラインブロック;
}

.addition:before {
    幅: 50px;
    高さ: 50px;
    背景色: #ff8833;
    コンテンツ: '';
    表示: ブロック;
    位置: 絶対;
    左: 0;
    上位: 50%;
    左マージン: -40px;
    変換: 回転(45度);
    上マージン: -10px;
}

.追加:後{
    幅: 60ピクセル;
    高さ: 60px;
    背景色: #ff8833;
    マージン: 10px;
    コンテンツ: '';
    表示: ブロック;
    変換: 回転(20度);
    変換: skew(20deg, 20deg);
    上: 5px;
    右: -40px;
    位置: 絶対;
}

ブロック内の小さなブロック

ドロップシャドウの影はブロック内のすべての要素の形状を反映できますが、ボックスシャドウはブロックの長方形の影を直接反映します。

。四角 {
    幅: 50px;
    高さ: 50px;
    表示: インラインブロック;
    背景色: #ffcc66;
    マージン: 20px;
}
。丸 {
    幅: 50px;
    高さ: 50px;
    表示: インラインブロック;
    境界線の半径: 50%;
    背景色: #ff8833;
    マージン: 20px;
}
<div class="demo-wrap">
    <div class="drop-shadow">
        <span class="square"></span>
        <span class="circle"></span>
        <p>ドロップシャドウ</p>
    </div>
    <div class="box-shadow">
        <span class="square"></span>
        <span class="circle"></span>
        <p>ボックスシャドウ</p>
    </div>
</div>

ドロップシャドウとボックスシャドウの違い

ドロップ シャドウには、内部境界 (インセット シャドウ) と距離 (スプレッド) の特性はありません。サポートに関しては、IE は現在 drop-shadow プロパティをサポートしていませんが、すべてのブラウザは一般に box-shadow をサポートしています。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

<<:  Docker-compose はブリッジを作成し、サブネットを追加し、ネットワーク カードを削除します。

>>:  IE アドレスバーのアイコン表示問題を解決する 3 つの手順

推薦する

Dockerコンテナ接続実装手順の分析

一般的に言えば、コンテナが起動した後、ポート マッピングを通じてコン​​テナが提供するサービスを使用...

RHEL8 で静的 IP アドレスを設定するさまざまな方法の簡単な分析

Linux サーバーで作業している場合、ネットワーク カード/イーサネット カードに静的 IP アド...

MySQL の Docker インストールと設定手順

目次序文環境インストールMySQLコンテナを作成して起動する思い出させるMySQLコンテナコマンドを...

Alibaba Cloud ECSインスタンスのユーザールートパスワードとリモート接続方法を設定する方法

Alibaba Cloud サーバーを購入した後、新しいインスタンスが正常に動作できるようにするには...

Mac VMware Fusion CentOS7 静的 IP 構成チュートリアル図

目次CentOS7をインストールする静的IPの設定viを使用してファイルを編集するCentOS7をイ...

Vue補間式とv-textディレクティブの違い

目次1. プラグイン式を使用する2. プラグイン式でv-cloakを使用してちらつきの問題を解決する...

サーバー間のファイル バックアップ ソリューション、サーバー ファイルを別のサーバーに自動的にバックアップする方法は?

多くの組織ではファイル サーバーをバックアップする必要があり、あるサーバーから別のファイル サーバー...

MySQL 8.0.16 圧縮パッケージのインストールと設定方法のグラフィックチュートリアル

この記事では、MySQL 8.0.16圧縮パッケージのインストールと設定方法を参考までに紹介します。...

MySqlサブクエリINの実装と最適化

目次IN が遅いのはなぜですか? INとEXISTSのどちらが速いでしょうか?効率を向上させるにはど...

Vueは小さな天気予報アプリケーションを実装します

これは私が Vue フレームワークを独学していたときに真似したウェブサイトです。いくつかの都市の天気...

ウェブサイトの速度を上げる6つの方法

1. .js ライブラリ ファイルのアドレスを Google CDN アドレスに置き換えます。 (G...

Linux 環境で crontab コマンドを使用して、スケジュールされた定期的な実行タスクを設定します (PHP 実行コードを含む)

この記事では、Linux 環境で crontab コマンドを使用して、タスクの定期的な実行をスケジュ...

jsはショッピングカートの加算と減算、価格計算機能を実現します

この記事では、ショッピングカートの増減と価格計算を実現するためのjsの具体的なコードを紹介します。具...

JavaScript のガベージコレクションの仕組みの詳細な説明

目次ガベージコレクション (GC) はなぜ必要なのでしょうか?ガベージコレクションとは廃棄物の発生ガ...

mysql5.7.20 のインストールと設定方法のグラフィック チュートリアル (mac)

MySQL 5.7.20のインストールと設定方法のグラフィックチュートリアルをあなたと共有します1...