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 プロセス管理とリロードの原則の詳細な説明

推薦する

ARM64アーキテクチャでmysql5.7.22をインストールするプロセス全体

MySQLダウンロードアドレス: https://obs.cn-north-4.myhuaweicl...

Vueは要素ツリーコントロールを通じてツリーテーブルを実装します

目次実装効果図依存関係をインストールするカスタムツリーコントロールその他の実装要約するVueでは、要...

Linuxのbasenameコマンドの使い方

01. コマンドの概要basename - ファイル名からディレクトリとサフィックスを削除しますba...

Docker を使用して Django プロジェクトをデプロイする方法の例

また、Dockerを使用してDjangoプロジェクトをデプロイするのも非常に簡単です。とても良いです...

HTMLの最適化によりWebページの速度が向上

明らかな HTML、隠された「公開スクリプト」 Web ページのダウンロード時間を短縮する鍵は、フ...

JavaScriptのvar let constの違いは何ですか?

目次1. 繰り返し宣言1.1 変数1.2 しましょう1.3 定数2. 可変プロモーション2.1 変数...

HTML テーブルに複雑なテーブル ヘッダーを実装するためのサンプル コード

複雑な表を作成するには HTML を使用します。複雑なテーブルでは通常、td の rowspan 属...

MySQL全文検索の使用例

目次1. 環境整備2. データの準備3. ショーを始める4. 単語分割エンジン要約する参考文献1. ...

面接官がmysqlのcharとvarcharの違いを尋ねたとき

目次charとvarcharの違いcharとvarcharの違い上記は、MySQL における cha...

JavaScript 配列メソッド - 体系的な概要と詳細な説明

目次一般的な配列メソッド配列要素の追加と削除配列ヘッダーの操作配列の末尾を操作する任意の場所に追加ま...

JavaScript におけるブラウザ互換性の問題について簡単に説明します

ブラウザの互換性は、実際の開発では見落とされがちな最も重要な部分です。古いバージョンのブラウザの互換...

MySQL 5.7.16 無料インストール版のインストールと設定方法のグラフィックチュートリアル

この記事ではMySQL 5.7.16のインストールと設定方法を記録します。具体的な内容は以下のとおり...

フロントエンドページのポップアップマスクはページのスクロールを禁止します

フロントエンド開発者がよく遭遇する問題は、ユーザーに情報を提示するためのポップアップ ウィンドウを作...

Ubuntu インストール時にブラックスクリーンが表示される場合の解決策 (3 種類)

私のコンピューターのグラフィック カードは Nvidia グラフィック カードです。再起動後、画面に...

一般的なCSS3アニメーションの実装方法

1. 何ですかCSS アニメーションは、CSS を使用して拡張マークアップ言語 (XML) 要素をア...