今回は、focus-withinの使い方について詳しく説明します。 注意点は何ですか?実際の事例を見てみましょう。
CSS の世界は本当に魔法の世界です。多くのフロントエンド開発者は、:focus については聞いたことがあるかもしれませんが、:focus-within については聞いたことがないかもしれません。では、:focus-within とは一体何でしょうか?この記事では、:focus-within について説明します。
:focus-within とは何ですか
CSS では: focus-within は疑似クラスであり、CSS セレクター (CSS レベル 4 セレクター) に含まれています。 :focus や :hover を知っているようなものです。 :focus-within はフォーカス状態を処理するのに非常に便利です。 :focus-within 擬似クラスを持つ要素は、要素自体またはその子孫の 1 つがフォーカスを持つ場合に有効です。
テキストがわかりにくい場合は、まず簡単な例を見てみましょう:
<p> <label> Your email: </label> <input> </p>
上記は、入力フォーム コントロールを備えた単純なフォームです。
.form-group *:focus { background: yellow; color: #000; } .form-group { padding: 10px; border: 3px solid transparent } .form-group:focus-within { border-color: #000; }
上記の例では、.form-group にフォーカスが移ると、border-color の色が #000 に変更されます。ただし、これはキーボード フォーカスを受け取ることを意味するものではありません。これは、
が必ずしもキーボード フォーカスを取得するとは限らず、tabindex が設定されていないためです。または、p のリンクまたは入力要素がフォーカスを受け取った場合、.form-group 要素は境界線の色を変更します。
上記の例を見て、すごいと思いませんか?以前は同様の効果を実現するには、JavaScript スクリプトを使用する必要がありました。 .form-group の子孫要素のマウスまたはキーボード イベントを通じて、対応するスタイルをその親要素 (または祖先要素) に追加します。
:focus-within の使用シナリオ
:focus-within は、主に、その要素のいずれかがフォーカスを取得したときに擬似クラスがアクティブ化されるため、非常に強力です。要素に多くのサブコンポーネントが含まれる場合、この疑似クラスは注意して使用してください。 :focus-within を使用すると、いくつかの一般的なインタラクティブな動作が非常にシンプルになり、特に以前は JavaScript キーボード イベントが必要だったインタラクティブな動作が、代わりに :focus-within を使用できるようになります。
次に、:focus-within の一般的な例をいくつか見てみましょう。
表の行の強調表示一般的な例は、表の行の強調表示の動作です。つまり、表の行の上にマウスを置くと色が強調表示されます。この対話型スタイルは、視覚障害のあるユーザーが複雑な表や長いフォームを読みやすくするのに役立ちます。強調表示のおかげで、これらのユーザーは現在読んでいるテーブルの行をより簡単に追跡できます。過去によく実装されていた方法は、 :hover を使用してテーブルの行のスタイルを変更することでした。この解決策は通常のユーザーにとっては簡単な作業ですが、ユーザーがマウスを操作するのが難しい場合は、:hover を使用するのは少し面倒です。完璧を求める場合は、JavaScript キーボード イベントを介してテーブルの行にスタイルを追加することもできます。
つまり、:focus-within を使用すると、JavaScript に別れを告げることができます。次のようにスタイルを設定できます:
上の例は、:focus-within を使用してテーブルの行全体を強調表示する方法を示しています。テーブルの特定の行にフォーカスを取得できる要素がある場合、これはキーボードを介してフォーカスを取得することを指します。たとえば、上の例では、テーブルに 要素があります。a 要素はキーボードを通じてフォーカスを取得できます。
現時点では、スタイルを追加するだけです:
tbody tr:focus-within, tbody tr:hover { background: rgba(lightBlue, .4); }
ドロップダウン メニュー ドロップダウン メニューは、最も一般的な Web コンポーネントの 1 つです。私が最初に :focus-within 擬似クラスを見たとき、最初に頭に浮かんだ使用例はドロップダウン メニューでした。
上記の例では、ナビゲーション ドロップダウン メニューでユーザーのキーボード フォーカスを追跡するために JavaScript が使用されています。キーボードのフォーカスがリンク上にあることが JavaScript によって検出された場合は、.has-focus クラスを .navlist_drop に追加します。 li に .has-focus クラスがある場合、その子要素が表示されます。つまり、ドロップダウン メニューが表示されます。
この効果を得るには、:focus-within を通じて JavaScript スクリプトの関数を直接置き換えることができます。 .navlistdrop.has-focus の代わりに .navlistdrop:focus-within を使用します。キーボードを操作してドロップダウン メニュー項目にフォーカスを移動すると、ドロップダウン メニューが表示されます。
.navlist a:focus + .navlistdrop, .has-drop:hover .navlistdrop, .navlistdrop:focus-within { opacity: 1; transform: translateY(0px); height: auto; z-index: 1; }オフスクリーンナビゲーション
オフスクリーン ナビゲーションはモバイル端末で一般的な効果です。次に、:focus-within を通じてこの効果を実現することもできます。詳細なコードについては、次の例を参照してください。 ブラウザの互換性 :focus-within 非常に興味深いものですが、多くの学生がその互換性を心配しています。 Caniuse を通じて、ブラウザーがそれをサポートしていることがわかります。 概要 :focus に精通していれば驚くことではありませんが、:focus-within を知っているということは、常に新しい CSS に注意を払っていることを意味します。に関連した特性。もちろん、このプロパティは CSS の世界を再び更新しましたが、これは本当に奇妙です。興味があれば、自分でデモを書いてみてはいかがでしょうか。この物件はきっと気に入っていただけるでしょう。 この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。 推奨読書:
以上がfocus-withinの使い方を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

CSSグリッドは、複雑で応答性の高いWebレイアウトを作成するための強力なツールです。設計を簡素化し、アクセシビリティを向上させ、古い方法よりも多くの制御を提供します。

記事では、レスポンシブデザインにおけるスペースの効率的なアラインメントと分布のためのレイアウト方法であるCSS FlexBoxについて説明します。 FlexBoxの使用量を説明し、CSSグリッドと比較し、ブラウザのサポートを詳細に説明します。

この記事では、ビューポートメタタグ、柔軟なグリッド、流体メディア、メディアクエリ、相対ユニットなど、CSSを使用してレスポンシブWebサイトを作成するための手法について説明します。また、CSSグリッドとフレックスボックスを使用してカバーし、CSSフレームワークを推奨しています

この記事では、要素の寸法の計算方法を制御するCSSボックスサイズのプロパティについて説明します。コンテンツボックス、ボーダーボックス、パディングボックスなどの値と、レイアウト設計とフォームアライメントへの影響について説明します。

記事では、CSS、キープロパティ、およびJavaScriptとの組み合わせを使用してアニメーションの作成について説明します。主な問題は、ブラウザの互換性です。

記事では、3D変換、主要なプロパティ、ブラウザの互換性、およびWebプロジェクトのパフォーマンスに関する考慮事項にCSSを使用して説明します。

この記事では、CSSグラデーション(線形、放射状、繰り返し)を使用して、ウェブサイトのビジュアルを強化し、深さ、フォーカス、および現代の美学を追加します。

記事では、CSSの擬似要素、HTMLスタイリングの強化における使用、および擬似クラスとの違いについて説明します。実用的な例を提供します。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

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

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

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

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

ホットトピック









