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解决方案
如果你想要变成焦点的元素是一个模式对话框
dialog::backdrop { background: rgba(0, 0, 0, .8);}
这种方法唯一需要注意的地方是,在编写的时候,浏览器的支持是非常有限的,所以一定要在使用前检查其当前状态。记住,即使它不被支持,如果对话框没有覆盖层的话,也不会影响到什么东西,因为它只是一个用户体验的改善。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











HTMLは、簡単に学習しやすく、結果をすばやく見ることができるため、初心者に適しています。 1)HTMLの学習曲線はスムーズで簡単に開始できます。 2)基本タグをマスターして、Webページの作成を開始します。 3)柔軟性が高く、CSSおよびJavaScriptと組み合わせて使用できます。 4)豊富な学習リソースと最新のツールは、学習プロセスをサポートしています。

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

HTMLはWeb構造を定義し、CSSはスタイルとレイアウトを担当し、JavaScriptは動的な相互作用を提供します。 3人はWeb開発で職務を遂行し、共同でカラフルなWebサイトを構築します。

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

Web開発におけるHTML、CSS、およびJavaScriptの役割は次のとおりです。1。HTMLは、Webページ構造を定義し、2。CSSはWebページスタイルを制御し、3。JavaScriptは動的な動作を追加します。一緒に、彼らは最新のウェブサイトのフレームワーク、美学、および相互作用を構築します。

HTMLの将来は、無限の可能性に満ちています。 1)新機能と標準には、より多くのセマンティックタグとWebComponentsの人気が含まれます。 2)Webデザインのトレンドは、レスポンシブでアクセス可能なデザインに向けて発展し続けます。 3)パフォーマンスの最適化により、応答性の高い画像読み込みと怠zyなロードテクノロジーを通じてユーザーエクスペリエンスが向上します。

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

HTMLの将来の傾向はセマンティクスとWebコンポーネントであり、CSSの将来の傾向はCSS-in-JSとCSShoudiniであり、JavaScriptの将来の傾向はWebAssemblyとServerLessです。 1。HTMLセマンティクスはアクセシビリティとSEO効果を改善し、Webコンポーネントは開発効率を向上させますが、ブラウザの互換性に注意を払う必要があります。 2。CSS-in-JSは、スタイル管理の柔軟性を高めますが、ファイルサイズを増やす可能性があります。 CSShoudiniは、CSSレンダリングの直接操作を可能にします。 3. Webassemblyブラウザーアプリケーションのパフォーマンスを最適化しますが、急な学習曲線があり、サーバーレスは開発を簡素化しますが、コールドスタートの問題の最適化が必要です。
