ニュース24 (Nyūsu 24)

最新ニュース (Saishin Nyūsu) – 世界と日本の最新情報

CSS 状態と JavaScript イベント間の転送ライン css-tricks

CSS 状態と JavaScript イベント間の転送ライン css-tricks


CSS は私たちの声を聞いています。いいえ、そんなことはありません 。むしろ、CSS は JavaScript イベントへの応答を支援する疑似クラスをどんどん蓄積しているため、JavaScript 自体で応答する必要がありません。ただし、疑似クラスはイベントではなく状態を追跡しますが、確かにイベント リスナーのように感じることがあります (CSS のコンテキストでは実際には重要ではありません)。

だから何 最近はCSS?たとえば、次のような提案があります。 event-trigger アニメーション トリガー仕様では、基本的にイベントをリッスンしてアニメーションをトリガーします。ただし、私に言わせれば、この構文ではそれ以上のことが可能です (CSS を除く invoker コマンドを考えてください)。

ただし、今日の現実に留まるために、その前に、イベント リスナーのようなさまざまな CSS 疑似クラスについて説明します。 event-triggerここで、この現在サポートされていない機能がどのように機能するか (私が思う) を説明します。

「イベントリスニング」疑似クラス

:hover そして :active

:hover 状態はそれ以来の瞬間を捉えています pointerenter イベントは次の場合にアクティブになります。 pointerleave イベントの起動。これは、疑似クラスがイベントではなく状態である理由を完全に示しています。

:active 現在マウス、指、またはスタイラスで押されているターゲット (リンクやボタンなど) と一致し、同じになります。 pointerdown そして pointerup/pointercancel

ところで、 pointer-events: none CSS 宣言により、選択した要素でインジケーター イベントが発生しなくなります。

:focus そして :focus-visible

:focus 擬似正方形と同じです focus そして blur (フォーカスを外して) JavaScript イベントですが、 :focus-visible もう少し複雑です。 :focus-visible トリガー時 :focus 表示されますが、さらにブラウザはさまざまなヒューリスティックを使用して、フォーカス インジケーターを表示するかどうかを決定します。ユーザーはキーボードで作業していますか?フォームコントロールとはどのような要素ですか?これにより、CSS が提供するものに本当に感謝します。実際、JavaScript を使用してこれを処理する最良の方法は、CSS 疑似クラスをクエリすることです。

element.addEventListener("focus", (event) => {
  if (event.target.matches(":focus-visible")) {
    /* Do something */
  }
});

:focus-within (そして :has()

JavaScript は、「A が Y なら、Z を B に実行する」といった処理に優れています。 DOM を走査したり、イベント伝播を利用したり、その他多くのことができます。その点では、CSS には少し制限があると感じるかもしれません。ただし、CSS は急速に進化しています。スクロール駆動のアニメーションなどの新しい「これを行う」機能が多数あり、将来的にはさらに追加される予定です。 HTML などの専用コンポーネントでも同じことを行う

これには、すべての CSS 属性が含まれます。

実際、それらのいくつかについては後ほど説明します。より全体的な意味で、私たちが持っているものは :focus-within子にフォーカスがある場合に一致します。 :has()これは、任意の有効なセレクターを受け入れ、2 つのセレクター間にそのような関係が存在する場合に一致します。

たとえば、これらのセレクターはどちらもまったく同じことを行います。

form:focus-within {
  /* Style the form when something within has focus */
}

form:has(:focus) {
  /* Style the form when something within has focus */
}

:checked

それは完全に明らかですか? :checked そうです。 JavaScript 現象の最も同義語は次のとおりです。 changea の値が次の場合にアクティブになります。

ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಚುನಾವಣಾ ಫಲಿತಾಂಶಗಳು ಸಿಎ ಚುನಾವಣಾ ಫಲಿತಾಂಶಗಳು ಚುನಾವಣಾ ಫಲಿತಾಂಶಗಳು ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಚುನಾವಣೆ ಚುನಾವಣಾ ಫಲಿತಾಂಶಗಳು ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಪ್ರಾಥಮಿಕ ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಪ್ರಾಥಮಿಕ ಫಲಿತಾಂಶಗಳು ಇಂದು ಪ್ರಾಥಮಿಕ ಚುನಾವಣಾ ಫಲಿತಾಂಶಗಳು ಸಿಎ ಗವರ್ನರ್ ರೇಸ್ ಫಲಿತಾಂಶಗಳು ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಗವರ್ನರ್ ಸ್ಟೀವ್ ಹಿಲ್ಟನ್ ಗವರ್ನರ್ ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಚುನಾವಣೆಗಳು ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಚುನಾವಣಾ ಫಲಿತಾಂಶಗಳು 2026 ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಗವರ್ನರ್ ರೇಸ್ ಫಲಿತಾಂಶಗಳು ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಸಿಎ ಪ್ರಾಥಮಿಕ ಫಲಿತಾಂಶಗಳು ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಪ್ರಾಥಮಿಕ 2026 ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಗವರ್ನರ್ ರೇಸ್ ಪೋಲ್ಸ್ ಕ್ಯಾಲಿಫೋರ್ನಿಯಾದ ಗವರ್ನರ್ ಅನ್ನು ಯಾರು ಗೆದ್ದರು ಲಾ ಗವರ್ನರ್ ರೇಸ್ ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಗವರ್ನರ್ ರೇಸ್ ಅನ್ನು ಯಾರು ಗೆದ್ದರು ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಪ್ರಾಥಮಿಕ ಫಲಿತಾಂಶಗಳು 2026 ಪ್ರಾಥಮಿಕ ಫಲಿತಾಂಶಗಳು ಸಿಎ ಗವರ್ನರ್ ರೇಸ್ ಸಿಎ ಚುನಾವಣಾ ಫಲಿತಾಂಶಗಳು 2026 ಗ್ಯಾವಿನ್ ನ್ಯೂಸಮ್ ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಫಲಿತಾಂಶಗಳು ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಗವರ್ನರ್ 2026 ಅನ್ನು ಯಾರು ಗೆದ್ದರು ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಗವರ್ನರ್ ಪ್ರೈಮರಿ ಕ್ಯಾಲಿಫೋರ್ನಿಯಾದಲ್ಲಿ ಗವರ್ನರ್ ರೇಸ್ ಅನ್ನು ಯಾರು ಗೆದ್ದರು ಸಿಎ ಪ್ರೈಮರಿ ಚುನಾವಣಾ ದಿನ ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ಗವರ್ನರ್ ಫಲಿತಾಂಶಗಳು