CSS3 すりガラス効果

CSS3 すりガラス効果

すりガラス効果がうまく表現されていれば、ページが非常に鮮やかで立体的に見えるようになります。写真に直接

体 {
    最小高さ: 100vh;
    ボックスのサイズ: 境界線ボックス;
    マージン: 0;
    パディングトップ: calc(50vh - 6em);
    フォント: 150%/1.6 セリフ;
    背景: url("iphone.jpg") 0 中央に固定;
    背景サイズ: カバー;
}
主要 {
    マージン: 0 自動;
    パディング: 1em;
    最大幅: 30em;
    境界線の半径: .3em;
    ボックスシャドウ: 0 0 0 1px hsla(0,0%,100%,.3) インセット、
                0 .5em 1em rgba(0, 0, 0, 0.6);
    テキストシャドウ: 0 1px 1px hsla(0,0%,100%,.3);
    背景: hsla(0,0%,100%,.3);
}

<メイン>……</メイン>

これらのスタイル コードを削除すると、すりガラス効果を実現するためのコア コードは次のようになります。

体 {
    …
    背景: url("iphone.jpg") 0 中央に固定;
    背景サイズ: カバー;
}
主要 {
    …
    背景: hsla(0,0%,100%,.3);
}

もちろん、この効果はまだ私たちの期待からは程遠いものです。単純に 30% の透明度ではテキストが読みにくくなるからです。ページの場合、背景画像はページを美しく見せるためのものであり、テキストが中心となります。透明度の割合を増やすこともできますが、その場合ページが硬く見えてしまいます。テキストを読みやすくし、ページに活気を与えるために、上記の mian タグの背景をぼかすことができます。

ぼかしフィルターを試してみることもできますが、残念ながら正しく機能しません。

主要 {
    …
    -webkit-filter: ぼかし(3px);
    フィルター: ぼかし(3px);
}

ぼかしフィルターを使うと文字がぼやけてさらに見えにくくなるので諦めるしかありません。正しい方法は、mian タグに疑似要素 ::before を追加し、疑似要素にぼかしフィルターを使用することです: (デモ用に赤い背景色が追加されています)

主要 {
    位置: 相対的;
    …
}
メイン::前{
    コンテンツ: '';
    位置: 絶対;
    上: 0; 右: 0; 下: 0; 左: 0;
    Zインデックス: -1;
    -webkit-filter: ぼかし(20px);
    フィルター: ぼかし(20px);
    背景: rgba(255,0,0,.5);
}

ぼかし効果が得られていることがわかりますが、2 つの問題が発生します。まず、ぼかしにより外側に影が出てしまいます。これは簡単に解決できます。overflow overflow: hidden;次に、ぼかし効果は、その周囲の 20 ピクセルのぼかし半径内で徐々に薄れていきます。これを懸念し、ぼかし効果を中央と端で同じにしたい場合は、疑似要素のサイズを 20 ピクセル拡大します。安全のために、さらに 30 ピクセルまで拡大することもできます。

主要 {
    …
    オーバーフロー: 非表示;
}
メイン::前{
    …
    マージン: -30px;
}

最後に、疑似要素の赤い背景色を、bodyの背景画像に置き換えます。効果は次のようになります。ここをクリックして右クリックすると、完全なソース コードを表示することもできます。

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

<<:  dockerを使用してTomcatをデプロイし、Skywalkingに接続する

>>:  React dva実装コード

推薦する

デザインスキルを向上させる良い方法

いわゆる才能(左脳と右脳)つまり、芸術的な才能があるかどうかは、人間の左脳と右脳の分業によって主に決...

Docker で Confluence をデプロイするための完全な手順

Confluence は有料ですが、クラックして使用できます (購入が推奨され、正規版がサポートされ...

MySQL InnoDB のトランザクション特性を確保するにはどうすればよいですか?

序文「データベース トランザクションの特徴は何ですか?」と尋ねられたら、 ACID 特性である原子性...

Vue.js での $emit の使用に関する詳細な説明

1. 親コンポーネントは props を使用して子コンポーネントにデータを渡すことができます。 2....

グリッド共通レイアウトの実装

両側に隙間なし、各列間に隙間あり 幅: 100%; 表示: グリッド; グリッドテンプレート列: r...

CocosCreatorでスワイプした位置にテクスチャを表示する方法

目次1. プロジェクト要件2. 文書の内容3. プロジェクト例4. プロジェクトコード1. プロジェ...

Web インタビュー Vue カスタム コンポーネントと呼び出しメソッド

輸入:プロジェクトの要件により、同じコードの一部をコンポーネントにカプセル化し、必要な場所にインポー...

MySQLデータベースでコマンドを自動補完する3つの方法

注意: 3 番目の方法は XSell でのみ使用され、finalsell では使用できません。方法1...

MySQLデーモンの起動に失敗したエラーの解決方法

MySQLデーモンの起動に失敗したエラーの解決方法数日前、公開されたウェブサイトはこれらのアクティビ...

Alibaba Cloud ECS サーバーでポート 8080 を開く方法

セキュリティ上の理由から、Alibaba Cloud Server ECS にはデフォルトで独自のセ...

MySQL統計テーブルのサイズを説明する例

各データベース内の各テーブルのサイズをカウントすることは、データ ガバナンスの最も単純な要件の 1 ...

MySQLの整数および文字列インデックスの無効化または暗黙的な変換に関する簡単な説明

目次問題の概要問題の再現問題の拡大結論は問題の概要今日、仕事中に、DBA が突然、SQL に暗黙的な...

MySQL 更新セットとの違い

目次問題の説明原因分析解決問題の説明最近、奇妙な問い合わせを受けました。更新ステートメントはエラーな...

WeChatアプレットの下部にあるタブバーがコンテンツをブロックする問題に対処する簡単な方法

WeChatアプレットでタブバーを設定すると、重要なコンテンツがブロックされ、iPhoneXなどの異...

Docker コンテナで DockerFile を使用して複数の Tomcat サービスをデプロイする手順

1. [admin@JD ~]$ cd opt #ルートディレクトリにoptと入力2. [admin...