」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何使用 :focus-visible 實現僅鍵盤焦點樣式?

如何使用 :focus-visible 實現僅鍵盤焦點樣式?

發佈於2024-11-07
瀏覽:189

How Can You Implement Keyboard-Only Focus Styles Using :focus-visible?

現代瀏覽器中僅鍵盤焦點樣式

在現代瀏覽器中,:focus-visible 偽類可以用來實現鍵盤-僅焦點樣式。當使用者透過鍵盤或其他非指點裝置與頁面互動時,此偽類會符合焦點元素,從而在幫助使用者時指示焦點。因此,當使用者透過點擊或點擊進​​行互動時,聚焦環會被抑制。

自訂焦點樣式:focus-visible

實現自訂焦點樣式,同時保留與舊版瀏覽器的兼容性,請遵循以下方法:

button:focus {
  /* Default focus styles */
}

button:focus:not(:focus-visible) {
  /* Undo default focus styles */
}

在支援 :focus-visible 的瀏覽器中,當 :focus-visible 處於非活動狀態時,第二條規則將覆寫第一條規則中定義的焦點樣式。這確保焦點樣式僅在 :focus-visible 處於活動狀態時套用。

舊版瀏覽器的原始解決方案

對於不支援:focus-visible 的瀏覽器,另一種方法是在每個可聚焦元素中使用附加元素,如Roman Komarov 的文章中所建議的:

/* Root button styling */
.btn {
  all: initial;
  display: inline-block;
}

/* Inner content element */
.btn__content {
  background: orange;
  cursor: pointer;
  display: inline-block;
}

/* Custom focus styles on inner element */
.btn:focus > .btn__content {
  box-shadow: 0 0 2px 2px #51a7e8;
  color: lime;
}

透過將焦點樣式放置在內部元素上,同時在新增自訂焦點樣式後刪除父元素和內部元素上的預設輪廓,只有鍵盤互動才能將焦點樣式套用到主要可見元素。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3