検索
ホームページウェブフロントエンドhtmlチュートリアルCSS Secret Garden: 明るさ調整による強調の解除_html/css_WEB-ITnose

『CSS Secrets』は、@Lea Verou による最新の本で、CSS に関する小さな秘密を説明しています。これは CSSers にとって読む価値のある本です。一定期間読んだ後、私、@全域と @彦子は、関連する読書感想文を W3cplus で公開し、皆さんと共有します。

多くの場合、特定の UI 要素に注意を払うようにユーザーに強調し、思い出させるために、要素の後ろに半透明の暗いオーバーレイを追加してコンテンツを暗くする必要があります。たとえば、ライトボックスや「クイック ツアー」インターフェイスでは、多くの場合、この効果が必要になります。

この効果を実現する最も一般的な手法は、追加の HTML 要素を追加して明るさを調整し、次のように CSS を適用することです:

.overlay { /* For dimming */    position: fixed;    top: 0;    right: 0;    bottom: 0;    left: 0;    background: rgba(0,0,0,.8);}.lightbox { /* The element to draw attention to */    position: absolute;    z-index: 1;    /* [rest of styling] */}

ダーク オーバーレイの目的は、ユーザーの注意を必要な場所に引き付けることです。要素の上と要素の後ろのコンテンツが暗くなっていることに注目してください。 .lightbox は Z インデックスが高いため、暗いオーバーレイの上に配置できます。これはすべてまったく問題ありませんが、追加の HTML 要素が必要です。つまり、CSS だけでは効果を適用できません。大したことではありませんが、できれば避けたい不便です。幸いなことに、ほとんどの場合は対処できます。

疑似要素ベースのソリューション

次のように、疑似要素を使用して追加の HTML 要素の必要性を排除できます:

body.dimmed::before {    position: fixed;    top: 0;    right: 0;    bottom: 0;    left: 0;    z-index: 1;    background: rgba(0,0,0,.8);}

これは少し優れたソリューションであり、CSS 経由で直接適用できることも意味します。 この効果。ただし、問題は、

要素の ::before 疑似要素の上に他のものが適用される可能性があるため、これはあまり便利ではないことです。つまり、この効果を適用したい場合は、通常、淡色表示されたクラスに適用する JavaScript が必要になります。

この問題は、要素自体の ::before 擬似要素にダーク オーバーレイを適用し、それに z-index:-1 を与えて要素の下に配置することで解決できます。これにより携帯性の問題は解決されますが、Z 軸の位置を非常に正確に制御できるわけではありません。最終的には要素の下に配置されるか (これが望ましい)、要素とその親のいくつかの下に配置される場合があります。

もう 1 つの問題は、疑似要素には独自の JavaScript イベントがないことです。オーバーレイに単一の要素を使用する場合、イベント ハンドラーをそれに追加できます。たとえば、ユーザーがオーバーレイをクリックしたときにハイライト ウィンドウを閉じることができます。ハイライトしたい同じ要素上で疑似要素を使用する場合、ユーザーがオーバーレイをクリックしたのか要素をクリックしたのかを検出するのが難しくなる可能性があります。

box-shadow のソリューション

擬似要素ソリューションは非常に柔軟で、オーバーレイに対するほとんどの人の期待に応えます。ただし、単純な使用例やプロトタイピングの場合は、ボックス シャドウの拡散半径を取得し、各辺で指定するサイズまで拡大することができます。これは、ゼロ オフセットとゼロ ブラーで非常に大きなシャドウを作成し、すばやくカジュアルな方法でオーバーレイをシミュレートできることを意味します。

うわー

最初に合格したソリューションの明らかな問題は、非常に大きな解像度 (> 2000px) で問題が発生することです。わずかに大きな数値を使用することでこれを軽減することも、ビューポート単位を使用して問題を完全に解決して、「オーバーレイ」が常にビューポートよりも大きくなるようにすることもできます。異なる水平方向と垂直方向のスプレッド半径の値を使用することはできないため、ビューポートの単位は vmax にする必要があります。 vmax という単位に詳しくない場合は、1vmax は 1vw または 1vh の大きい方と同じです。 100vw はビューポートの幅と等しく、100vh はビューポートの高さの値と等しくなります。したがって、ニーズを満たす最小値は 50vmax で、各側に追加されるため、オーバーレイの最終的なサイズは 100vmax + 要素のサイズになります。

box-shadow: 0 0 0 999px rgba(0,0,0,.8);

このテクニックは非常に素早く簡単に適用できますが、その有用性を制限する 2 つのかなり深刻な問題があります。発見しましたか?

まず第一に、要素のサイズはビューポートに関連しており、ページとは何の関係もないため、要素がposition:fixedで配置されていない限り、ページをスクロールするとオーバーレイの境界が表示されます。 ; またはページ自体 巻くのに十分な長さではありません。さらに、ページは非常に長くなる可能性があるため、スプレッド半径を大きくすることでこれを賢明に克服しようとはしません。代わりに、固定位置の要素、またはページが非常に小さくスクロールしない場合にのみ、この手法を使用することをお勧めします。

第二に、単一の要素 (または疑似要素) をオーバーレイとして使用することは、必要な要素にユーザーの注意を向けるだけではありません。また、ポインタ イベントをキャプチャするため、ページの残りの部分とのマウス操作も防止されます。 box-shadow にはこのプロパティがありません。したがって、マウス操作イベント自体をキャプチャすることなく、特定の要素にユーザーの注意を向けるのに視覚的に役立つだけです。これが許容されるかどうかは、特定の使用例によって異なります。

backdrop解决方案

如果你想要变成焦点的元素是一个模式对话框

元素通过它的 showModal() 方法显示),它已经有一个覆盖层了,通过用户代理样式表。这种原生的覆盖还可以通过 ::backdrop 伪元素来添加样式,例如,让它变暗一点:

dialog::backdrop {    background: rgba(0, 0, 0, .8);}

这种方法唯一需要注意的地方是,在编写的时候,浏览器的支持是非常有限的,所以一定要在使用前检查其当前状态。记住,即使它不被支持,如果对话框没有覆盖层的话,也不会影响到什么东西,因为它只是一个用户体验的改善。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
HTML対CSS対JavaScript:比較概要HTML対CSS対JavaScript:比較概要Apr 16, 2025 am 12:04 AM

Web開発におけるHTML、CSS、およびJavaScriptの役割は次のとおりです。HTMLはコンテンツ構造を担当し、CSSはスタイルを担当し、JavaScriptは動的な動作を担当します。 1。HTMLは、セマンティクスを確保するためにタグを使用してWebページの構造とコンテンツを定義します。 2。CSSは、セレクターと属性を介してWebページスタイルを制御して、美しく読みやすくします。 3。JavaScriptは、動的でインタラクティブな関数を実現するために、スクリプトを通じてWebページの動作を制御します。

HTML:それはプログラミング言語か何か他のものですか?HTML:それはプログラミング言語か何か他のものですか?Apr 15, 2025 am 12:13 AM

htmlisnotaprogramminglanguage; itisamarkuplanguage.1)htmlStructuresandformatswebcontentusingtags.2)ItworkswithcsssssssssdjavascriptforInteractivity、強化を促進します。

HTML:Webページの構造の構築HTML:Webページの構造の構築Apr 14, 2025 am 12:14 AM

HTMLは、Webページ構造の構築の基礎です。 1。HTMLは、コンテンツ構造とセマンティクス、および使用などを定義します。タグ。 2. SEO効果を改善するために、などのセマンティックマーカーを提供します。 3.タグを介したユーザーの相互作用を実現するには、フォーム検証に注意してください。 4. JavaScriptと組み合わせて、動的効果を実現するなどの高度な要素を使用します。 5.一般的なエラーには、閉じられていないラベルと引用されていない属性値が含まれ、検証ツールが必要です。 6.最適化戦略には、HTTP要求の削減、HTMLの圧縮、セマンティックタグの使用などが含まれます。

テキストからウェブサイトへ:HTMLの力テキストからウェブサイトへ:HTMLの力Apr 13, 2025 am 12:07 AM

HTMLは、Webページを構築するために使用される言語であり、タグと属性を使用してWebページの構造とコンテンツを定義します。 1)htmlは、などのタグを介してドキュメント構造を整理します。 2)ブラウザはHTMLを分析してDOMを構築し、Webページをレンダリングします。 3)マルチメディア関数を強化するなど、HTML5の新機能。 4)一般的なエラーには、閉じられていないラベルと引用されていない属性値が含まれます。 5)最適化の提案には、セマンティックタグの使用とファイルサイズの削減が含まれます。

HTML、CSS、およびJavaScriptの理解:初心者向けガイドHTML、CSS、およびJavaScriptの理解:初心者向けガイドApr 12, 2025 am 12:02 AM

webdevelopmentReliesOnhtml、css、andjavascript:1)htmlStructuresContent、2)cssStylesit、および3)Javascriptaddsinteractivity、形成、

HTMLの役割:Webコンテンツの構造HTMLの役割:Webコンテンツの構造Apr 11, 2025 am 12:12 AM

HTMLの役割は、タグと属性を使用してWebページの構造とコンテンツを定義することです。 1。HTMLは、読みやすく理解しやすいようなタグを介してコンテンツを整理します。 2。アクセシビリティとSEOを強化するには、セマンティックタグなどを使用します。 3. HTMLコードの最適化により、Webページの読み込み速度とユーザーエクスペリエンスが向上する可能性があります。

HTMLとコード:用語を詳しく見るHTMLとコード:用語を詳しく見るApr 10, 2025 am 09:28 AM

htmlisaspecifictypeofcodefocuseduructuringwebcontent

HTML、CSS、およびJavaScript:Web開発者に不可欠なツールHTML、CSS、およびJavaScript:Web開発者に不可欠なツールApr 09, 2025 am 12:12 AM

HTML、CSS、およびJavaScriptは、Web開発の3つの柱です。 1。HTMLは、Webページ構造を定義し、などなどのタグを使用します。2。CSSは、色、フォントサイズなどのセレクターと属性を使用してWebページスタイルを制御します。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター