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

推薦する

js を使用して 2 つの HTML ウィンドウ間で通信する方法

シナリオ: ページAがページBを開くと、ページBで操作した後、ページAは変更されたデータを同期する必...

ウェブページでmp3またはフラッシュプレーヤーコードを再生する

コードをコピーコードは次のとおりです。 <オブジェクト id="player1&qu...

Element における複数データ読み込み最適化の実装

目次シナリオコードの実装要約:シナリオ最近、ElementUI をベースにしたバックグラウンド管理シ...

MySQLフィールド定義でnullを使用しない理由の分析

NULL が頻繁に使用されるのはなぜですか? (1)Javaのnull Java の NullPoi...

MySQL でレプリケーション フィルターを動的に変更する方法

MySQLはレプリケーションフィルターを動的に変更します今日遭遇した問題についてお話しします。今日は...

LinuxにKafkaをインストールする

目次1.1 前提条件としてのJava環境1.2 Zookeeperのインストールと設定1.3 Kaf...

Vue プロジェクト コード分割ソリューション

目次背景目的分割前プロセス設計ディレクトリ構造の設計問題分割後プロセス設計ディレクトリ構造の設計問題...

React HTML で react を使用する 2 つの方法

基本的な使い方 <!DOCTYPE html> <html lang="...

MySQL ロック関連知識のまとめ

MySQL のロックロックは、並行環境におけるリソースの競合を解決する手段です。その中でも、楽観的並...

1 行または複数行のテキストがオーバーフローしたときに省略記号を表示する CSS を実装する方法

1. 単一行オーバーフロー1. 1 行がオーバーフローした場合、超過部分は表示されます...または、...

nginx をベースにした Web クラスター プロジェクトをすばやく構築する方法を説明します。

目次1. プロジェクト環境2. プロジェクトの説明3. プロジェクトの手順1. インストール2. 構...

Vue ミックスインの詳しい説明

目次ローカルミックスイングローバル ミックスイン要約するローカルミックスイン <テンプレート&...

Eclipse と IDEA 用に Tomcat サーバーを構成する方法

tomcat サーバーの構成誰もが Web について学習するときに、自分のツール用に Tomcat ...

Excelアップロード機能を実現するVue + iViewの完全コード

1. HTML部分 <Col span="2">ファイルをアップロー...

gorm で MySql データベースを操作する方法

1. テーブル内のフィールドの大文字と小文字の区別を設定するgorm クエリを使用する場合、MySQ...