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実装コード

推薦する

LinuxでSVNサーバーを構築する方法

1: SVNをインストールする yum インストール -y サブバージョン2. 倉庫を作る1: 倉庫...

Oracle と MySQL の高可用性ソリューションの比較分析

Oracle と MySQL の高可用性ソリューションについては、以前からまとめたいと思っていたので...

HTML タグでの this の使用法の紹介

例えば:コードをコピーコードは次のとおりです。 <html> <ヘッド> &...

初心者がソースコードからMySQLのデッドロック問題を理解する

夜遅くまで何度も困難なシングルステップデバッグを行った後、ようやく理想的なブレークポイントを見つけま...

Linux C バックグラウンドサービスプログラムの単一プロセス制御の実装

導入通常、バックグラウンド サーバー プログラムには 1 つのプロセスのみが必要ですが、単一のプロセ...

MySQL における 10 進数型の使用法の簡単な紹介

MySQL でサポートされている浮動小数点型は、 FLOAT 、 DOUBLE 、およびDECIMA...

MySQL binlog を使用して誤って削除されたデータベースを復元する方法

目次1 現在のデータベースの内容を表示し、データベースをバックアップする2 bin_log関数を有効...

Tomcat の一般的な例外と解決コードの例

弊社のプロジェクトは Java で開発され、ミドルウェアは Tomcat でした。運用中に、Tomc...

JavaScript によるデータ視覚化: ECharts マップの作成

目次概要予防1. 使用方法2. 実装手順予備実装コード効果: Geo共通設定上記の構成を追加した後の...

MySQL の昇順および降順データソートの実装

データの昇順、降順ソート1. フィールド名による単一フィールドのソート順機能:どのフィールドを基準に...

ネイティブ JavaScript 継承方法とその長所と短所の詳細な説明

目次序文プロトタイプ継承アドバンテージ欠点コンストラクタの継承アドバンテージ欠点組み合わせ継承寄生的...

CSS コード省略 div+css レイアウト コード省略仕様

略語を使用すると、CSS ファイルのサイズが小さくなり、読みやすくなります。 CSS 省略形の主なル...

jsはFileReaderを使用してローカルファイルまたはBLOBを読み取ります

目次FileReaderはローカルファイルまたはBLOBを読み取ります1. FileReaderの使...

HTMLの水平線注釈とコードコメントの使い方をマスターするだけです

水平線<hr /> タグを使用して、現在の位置に水平の分割線を描画します。例: XML/...

@media レスポンシブ CSS を使用してさまざまな画面に適応する例

定義と使用@media クエリを使用すると、さまざまなメディア タイプに異なるスタイルを定義できます...