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 でファイルの作成時間を取得する方法と実践的なチュートリアル

背景ファイルの作成時刻を取得する必要がある場合があります。例えば: 「xtrabackup スキーマ...

HTML文書におけるol要素の数値制限に関する議論

一般的に言えば、HTML ドキュメント内で極端に大きな <ol> リストに遭遇する可能性...

Reactは、読み込み、読み込み完了、読み込み失敗の3つの段階の原則分析を実装します。

最近ブログに書いたのですが、プロジェクトリストの中に写真がたくさんあり、最初は読み込みが遅いので、ス...

Vue 計算プロパティ実装トランスクリプト

この記事では、Vueの計算プロパティ実装レポートカードを参考に共有します。具体的な内容は次のとおりで...

CSSは複数の要素をボックスの両端に揃える効果を実現します

要素の両端を揃える配置レイアウトは、実際の開発のいたるところで見られます。これは、フレックスレイアウ...

Vue はアップロードされた画像に透かしを追加する機能を実装します

この記事では、Vueでアップロードされた画像に透かしを追加する具体的な実装コードを参考までに共有しま...

プロジェクトを素早く構築するためのvite+vue3.0+ts+element-plusの実装

目次バイト機能使用環境プロジェクトを構築する構成vite.config.ts tsconfig.js...

Dockerの高可用性構成の詳細な説明

Docker の作成Docker Compose は、管理対象コンテナをプロジェクト、サービス、コン...

MySQL クエリの最適化: クエリが遅い原因と解決策

開発に携わっている友人、特に MySQL に関係のある友人は、非常に遅い MySQL クエリに遭遇す...

Docker で nginx のログレベルを調整する方法

目次はじめにNginx Dockerファイル新しい会議もっと参考文献はじめに最近、アプリケーションの...

HTML の iframe と frame の違いを例を使って説明します

プロジェクトで frameset 属性を使用したことがあるかどうかはわかりません。昨年、オンライン ...

MySQL に 1,000 万件のレコードを素早く挿入する方法

面接で「MySQL に 1,000 万件のレコードをすばやく挿入するにはどうすればよいか」という質問...

MySQLでページングクエリを実装する方法

SQL ページング クエリ:背景会社のシステムには、構成管理用のプラットフォーム、いわゆる CRUD...

シンプルなjQuery + CSSを使用してカスタムタグタイトルツールチップを作成します

導入シンプルな jQuery + CSS を使用して、ブラウザのデフォルトの動作を置き換えるカスタム...

音楽プレーヤーアプリ(アプリケーションソフトウェア)の分析と再設計 美しい音楽プレーヤーインターフェースの設計方法

無線インタラクションにずっと興味があったので、今回は実践してみようと思います〜この分析と評価は iO...