CSS3のwebkit-box-reflectを巧みに使用して、さまざまな動的効果を実現します。

CSS3のwebkit-box-reflectを巧みに使用して、さまざまな動的効果を実現します。

かなり前の記事で、 -webkit-box-reflectプロパティについて説明しました。リフレクションからのCSS継承について話しましょう。

-webkit-box-reflectは非常に興味深いプロパティで、要素によって最初に描画されたコンテンツを鏡のように反映する機能を CSS に提供します。

前回これを書いたときは、互換性が非常に悪かったです。しかし、今日では、まだ非標準の構文ではあるものの、互換性は大幅に向上しており、これを使用することで、多くの興味深い効果を実現できます。

2021-02-19現在、互換性は91.02%に達しています。CANIUSE -webkit-box-reflectをご覧ください。

次に本文を入力します。

-webkit-box-reflect基本的な使い方

-webkit-box-reflectの構文は非常にシンプルです。最も基本的な使用法は次のようになります。

div {
    -webkit-box-reflect: 以下;
}

その中で、belowはbelow | above | left | rightとなり、下、上、左、右を表し、つまり4つの方向から選択できます。

次のような図があるとします。

<div></div>
div {
    背景画像: url('https://images.pokemontcg.io/xy2/12_hires.png');
} 

右側の反射である-webkit-box-reflect: rightを追加します。

div {
    背景画像: url('https://images.pokemontcg.io/xy2/12_hires.png');
    -webkit-box-reflect: 右;
}

効果は次のようになり、要素の右側に鏡像要素が生成されます。

反射距離を設定する

方向の後に、反射と元の要素間の距離を示す特定の数値を追加することもできます。

div {
    背景画像: url('https://images.pokemontcg.io/xy2/12_hires.png');
    -webkit-box-reflect: 右 10px;
}

10pxを追加すると、反射と元の要素の間に10pxギャップができます。

反映現実を設定する

もう一つの非常に重要な機能は、方向の背後にグラデーション値を設定できることです。 このグラデーション値を使用することで、非常に重要な反射のぼかし効果を実現できます。

div {
    背景画像: url('https://images.pokemontcg.io/xy2/12_hires.png');
    -webkit-box-reflect: 2px 以下 linear-gradient(transparent, rgba(0, 0, 0, .5));
}

効果を見てください。仮想と現実の変化の後、反射のように見えます。

実際、ここでのグラデーションは、反射画像に MASK 属性を追加することです。MASK 属性のtransparent部分は画像を透明にし、単色部分は元の画像のままにします。

CSS MASK属性について質問がある場合は、この記事を読むことをお勧めします:素晴らしいCSS MASK

CodePen デモ -- -webkit-box-reflect デモ

-webkit-box-reflectを使用すると、興味深いアニメーション効果が得られます。

基本的な文法を習得したら、それを使用していくつかの興味深いアニメーション効果を実現できます。以下に簡単に説明します。

この属性は、一部のダーク スタイルのページでの使用に特に適していることがわかりました。多くのダイナミックエフェクトをより高度に見せることができます。 (個人的な美的感覚)

ボタンで-webkit-box-reflect使用する

動的な境界アニメーションを備えたいくつかのボタンと組み合わせると、非常に SF 的な効果を作成できます。

興味があれば、ソースコードを確認してください:

CodePen デモ -webkit-box-reflect ネオンボタンホバー効果

テキストで-webkit-box-reflect使用する

暗いタイトル テキストでは、 -webkit-box-reflectを使用すると、すぐに見た目がよりエレガントになります。

CodePen デモ - フォント & -webkit-box-reflect

3D で-webkit-box-reflect使用する

さて、次に、 -webkit-box-reflect 3D 効果に適用することもできます。これにより、まったく異なる視聴体験が得られます。

3D フォトウォールに反射効果を追加します。

CodePen デモ - 3DView & -webkit-box-reflect

-webkit-box-reflectで芸術的なパターンを作成する

興味深い CSS アートがまた登場です。

袁川教授によるこの記事「Chinese Window Lattice And CSS」では、 -webkit-box-reflectを使用して切り絵アートを生成するアイデアが紹介されています。

-webkit-box-reflect反射を生成できるため、これを使用して人形をレイヤーごとに連続的にネストできます。その後、基本的な要素を生成するだけで、反射を使用してさまざまな効果を生み出すことができます。

次のような構造があるとします。

<div class="g-wrap1">
    <div class="g-wrap2">
        <div class="g-wrap3">
            <div class="g-wrap4"></div>
        </div>
    </div>
</div>

次のように、 .g-wrap4のグラフィックを実装するだけです。

.g-ラップ4 {
    背景: 
        放射状グラデーション(0 0の円、#000 30%、透明30%、透明40%、#000 40%、#000 50%、透明50%)、
        放射状グラデーション(円 100% 100%、#000 10%、透明 10%、透明 30%、#000 30%、#000 40%、透明 40%);
} 

次に、入れ子人形のレイヤーが 4 つあります。まず、反射レイヤー-webkit-box-reflect .g-wrap4に追加します。

.g-ラップ4 {
    -webkit-box-reflect: 右 0px;
}

得る:

人形の入れ子構造を続けて、反射レイヤー-webkit-box-reflect .g-wrap3に追加します。

.g-ラップ4 {
    -webkit-box-reflect: 右 0px;
}
.g-wrap3 {
    -webkit-box-reflect: 0px以下;
} 

続けて、反射レイヤー-webkit-box-reflect .g-wrap2に追加します。

.g-ラップ4 {
    -webkit-box-reflect: 右 0px;
}
.g-wrap3 {
    -webkit-box-reflect: 0px以下;
}
.g-ラップ2 {
    -webkit-box-reflect: 左 0px;
} 

最後に、反射レイヤー-webkit-box-reflect .g-wrap1に追加します。

.g-ラップ4 {
    -webkit-box-reflect: 右 0px;
}
.g-wrap3 {
    -webkit-box-reflect: 0px以下;
}
.g-ラップ2 {
    -webkit-box-reflect: 左 0px;
}
.g-ラップ1 {
    -webkit-box-reflect: 0px以上;
}

4 層の反射を経て得られた図が得られます。

このように、さまざまな基本グラフィックと想像力を活用することで、さまざまな切り絵の対称グラフィックを生成できます。

完全なコードはここにあります:

CodePen デモ -- -webkit-box-reflect アーティスト

やっと

この記事はこれで終わりです。皆さんのお役に立てれば幸いです。この記事ではwebkit-box-reflectの興味深い使い方をいくつか紹介します。ビジネスではあまり実用的ではないかもしれませんが、非常に興味深いです。

CSS3のwebkit-box-reflectを使用してさまざまな動的効果を実現する方法についての記事はこれで終わりです。CSS3のwebkit-box-reflect動的効果の詳細については、123WORDPRESS.COMの以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも123WORDPRESS.COMをよろしくお願いいたします。

<<:  Linux 7.6 バイナリに MySQL 8.0.27 をインストールする詳細な手順

>>:  HTML の marquee 属性の詳細な説明

推薦する

Centos7.6にTomcat-8.5.39をインストールする方法

Centos7.6 に Tomcat-8.5.39 をインストールする方法は次のとおりです。詳細は次...

mysql 起動時の ERROR 2003 (HY000) の問題を解決する方法

1. 問題の説明MYSQL を起動すると、図に示すように、「ERROR 2003 (HY000): ...

MySQL でよく使用されるデータベースとテーブル シャーディング ソリューションの概要

目次1. データベースのボトルネック2. サブライブラリとサブテーブル2. 横長テーブル3. 垂直サ...

Uniappの小規模プログラム開発経験

1. 新しいUIプロジェクトを作成するまず、私たちの UI は ColorUI に基づいています。C...

同じレベルの要素で Position:fixed と margin-top を一緒に使用する場合の CSS の問題

問題の説明CSS を使用して上部の固定効果を実現したいと思います。 margin-top と pos...

Docker の 4 つのネットワーク タイプの主な例

4 つのネットワーク タイプ:なし: コンテナのネットワーク機能を一切設定しません。--net=no...

MySql の 4 つのトランザクション分離レベルについて簡単に説明します。

分離レベル:隔離はあなたが考えるよりも複雑です。 SQL 標準では 4 つの分離レベルが定義されてお...

ベスト HTML/CSS デザインおよび開発フレームワーク 15 選を紹介します

プロフェッショナルな Web デザインは複雑で時間がかかります。 HTML と CSS フレームワー...

Reactフック入門チュートリアル

ステートフック例: 'react' から useState をインポートします。 関...

Windows 10 + mysql 8.0.11 zipインストールチュートリアルの詳細

準備する: MySQL 8.0 Windows zip パッケージのダウンロード アドレス: htt...

MySQL で URL タイムゾーンの罠を回避する方法

序文最近、MySQL 6.0.x 以降の jar を使用する場合、コード URL リンクで serv...

jsフェッチ非同期リクエストの使用の詳細な例

目次非同期を理解するフェッチ(url)レスポンス.json() asyncとawaitを組み合わせる...

WeChatミニプログラム抽選コンポーネントの使い方

WeChatコンポーネントの形式で提供されます。コンポーネント内部ではasync/awaitが使用さ...

ホワイトボードを踏まないようにするゲームを実装するための HTML+CSS+JS

目次背景1. 思考分析2. ページ構成2.1 HTML レイヤー2.2 CSS レイヤー2.3 JS...