CSS で写真のスタッキング効果を実装するサンプルコード

CSS で写真のスタッキング効果を実装するサンプルコード

成果を達成する

 

ステップ

1. 初期index.html

最初の写真、一番上の写真を作成します。写真の img を含む div を追加するだけです。以上です。残りの効果は CSS を通じて実現されます。 div にクラス stackone があることを確認します。

<!DOCTYPE html>
<html lang="ja">

<ヘッド>
  <メタ文字セット="UTF-8">
  <meta name="viewport" content="width=デバイス幅、初期スケール=1.0">
  <meta http-equiv="X-UA-compatible" content="ie=edge">
  <title>写真スタック</title>
  <スタイル>
    * {
      マージン: 0;
      パディング: 0;
    }
    html,
    体 {
      幅: 100%;
      高さ: 100%;
      オーバーフロー: 非表示;
    }
    .stackone {
      --img-width: 480px;
      --img-height: 320px;
      境界線: 6px 実線 #fff;
      フロート: 左;
      高さ:var(--img-height);
      幅: var(--img-width);
      マージン: 50px;
      位置: 相対的;
      -webkit-box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3);
      -moz-box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3);
      ボックスの影: 2px 2px 5px rgba(0, 0, 0, 0.3);
    }
    .stackone画像{
      幅: var(--img-width);
    }
  </スタイル>
</head>
<本文>
  <div class="stackone">
    <img src="../../../assets/image/landscape-4378548_960_720.jpg">
  </div>
</本文>
</html>

初期効果は次のとおりです。


2. 最初の擬似要素

ここでネガティブのレイヤーを追加します。私たちが望む効果は、下の画像が上の写真の下に表示されることです。これを実現するには、CSS 疑似クラス before を使用できます。

.stackone::before {
  コンテンツ: "";
  高さ:var(--img-height);
  幅: var(--img-width);
  背景: #eff4de;
  境界線: 6px 実線 #fff;
  -webkit-box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3);
  -moz-box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3);
  ボックスの影: 2px 2px 5px rgba(0, 0, 0, 0.3);
}

効果は今や大きく異なる


3. 事前に改善する

これは私たちが望んでいる効果ではありません。どうすれば修正できますか? :before に位置指定を追加し、それを背後に配置するために z-index を設定する必要があります。

.stackone::before {
  コンテンツ: "";
  高さ:var(--img-height);
  幅: var(--img-width);
  背景: #eff4de;
  境界線: 6px 実線 #fff;

  位置: 絶対;
  Zインデックス: -1;
  上: 0px;
  左: -10px;

  -webkit-box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3);
  -moz-box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3);
  ボックスの影: 2px 2px 5px rgba(0, 0, 0, 0.3);

  -webkit-transform: 回転(-5度);
  -moz-transform:回転(-5度);
  -o-transform: 回転(-5度);
  -ms-transform:回転(-5度);
  変換: 回転(-5度);
}

この時点では効果は正常であり、初期の兆候が見られる


4. 2番目の疑似要素

.stackone::after {
  コンテンツ: "";
  高さ:var(--img-height);
  幅: var(--img-width);
  背景: 水色;
  境界線: 6px 実線 #fff;
  位置: 絶対;
  Zインデックス: -1;
  上: 5px;
  左: 0px;
  -webkit-box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3);
  -moz-box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3);
  ボックスの影: 2px 2px 5px rgba(0, 0, 0, 0.3);
  -webkit-transform: 回転(4度);
  -moz-transform:回転(4度);
  -o-transform: 回転(4度);
  -ms-transform:回転(4度);
  変換: 回転(4度);
}

ついに、階層感覚をもって完成です。


元の説明

この記事は、2014 年 12 月 29 日 16:38:48 に CSDN に投稿された私のブログ「写真のスタッキング効果を実現する CSS」から移行されたものです。
ソースブログの参照は「疑似要素を使用してイメージスタックの錯覚を作成する」から翻訳されています。
Githubプロジェクトのソースコード

<<:  Baidu百科事典UIの開発動向について議論する

>>:  Nginx プロセス管理とリロードの原則の詳細な説明

推薦する

Ubuntu20.04 VNCのインストールと設定の実装

VNC はリモート デスクトップ プロトコルです。 VNC を使用して Ubuntu 20.04 を...

MySQL マスタースレーブの原理と構成の詳細

MySQLのマスタースレーブ構成と原理、参考までに具体的な内容は以下のとおりです。 1. 環境の選択...

MySQL 8.0.11 の詳細なインストール手順

この記事では、参考までにMySQL 8.0.11のインストール手順を紹介します。具体的な内容は次のと...

MySQL 時間差関数 (TIMESTAMPDIFF、DATEDIFF)、日付変換計算関数 (date_add、day、date_format、str_to_date)

1. 時間差関数(TIMESTAMPDIFF、DATEDIFF) MySQLを使用して時間差を計算...

フロア効果を実現するためのJavaScript

この記事では、フロア効果を実現するためのJavaScriptの具体的なコードを参考までに紹介します。...

Linux システムファイル共有 samba 設定チュートリアル

目次sambaをアンインストールしてインストールする新しい共有パスを作成し、権限を設定するSamba...

Vueタイムラインコンポーネントの使い方

この記事の例では、参考までにvueタイムラインコンポーネントの具体的な実装コードを共有しています。具...

Vue でメニュー権限制御を実装するためのサンプルコード

バックエンド管理システムで作業している場合、通常、メニュー権限制御に関連する問題に遭遇します。もちろ...

Dockerコマンドは一般ユーザーが実行できるように実装されている

dockerをインストールすると、通常はdockerユーザーグループが作成されます。ステップ2: 現...

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

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

CSS マージンの重複と解決策の探索の詳細な説明

最近、CSS 関連の知識ポイントをいくつか見直し、CSS における典型的なマージンの重なりの問題を整...

MySQLクエリのパフォーマンスに影響を与える大きなオフセットの理由と最適化の詳細な説明

序文MySQL クエリは select コマンドを使用し、limit および offset パラメー...

CentOS 7.6 への MySQL 5.7 GA バージョンのインストール チュートリアル図

目次環境の準備環境の準備mariadbをアンインストールする rpm -qa | grep mari...

Docker のポート解放失敗の解決策

今日、非常に奇妙な状況に遭遇しました。docker イメージを更新した後、docker-compos...

Vue を使用した Amap アプリケーション開発のベスト プラクティス

目次序文非同期読み込みパッケージコンポーネントコンポーネントの使用インターフェースをカスタマイズする...