成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

停止在表單中使用 :valid,這個新 CSS 特性更適合你

開發 前端
建議開發者停止使用傳統的 ??:valid?? 與 ??:invalid?? 進行即時反饋,轉而采用 ??:user-valid?? 和 ??:user-invalid?? 來實現更精確、更符合用戶期望的交互效果。

網頁表單設計中,開發者通常會利用 CSS 提供即時的驗證反饋,例如使用偽類選擇器 :valid 或 :invalid 來標記表單字段是否有效。但這種方法存在一個明顯的問題:

表單字段在用戶尚未輸入時,就已顯示為有效或無效狀態,這會誤導用戶,嚴重影響用戶體驗。

本文將介紹一種全新的、更友好的 CSS 特性,幫助開發者解決這個難題——:user-valid 和 :user-invalid。

傳統 :valid 和 :invalid 存在的問題

使用傳統的偽類 :valid 和 :invalid 時,一旦頁面加載完成,只要表單元素滿足或不滿足驗證規則,相關樣式就會立即應用,即使用戶尚未輸入任何內容。

例如:

  • 一個郵箱輸入框,用戶還未輸入任何文字,就已經顯示綠色邊框表示有效,令人困惑。
  • 另一個必填項在加載頁面時就顯示紅色邊框提示錯誤,給用戶帶來消極的初始印象。

此外,僅依靠顏色進行提示,顯然也不符合 Web 可訪問性原則,會給色覺障礙用戶造成額外負擔。

新方案::user-valid 和 :user-invalid

為解決上述問題,CSS 引入了兩個新的偽類選擇器:

  • :user-valid
  • :user-invalid

它們的優勢在于:

  • 僅在用戶交互之后才應用樣式(例如用戶輸入內容或離開字段后)
  • 避免在頁面首次加載時出現誤導性的反饋
  • 顯著提升用戶體驗與表單的可用性

為什么應當切換到 :user-valid 和 :user-invalid?

與傳統方法相比,這種新的方式使得表單反饋變得:

  • 更清晰直觀
  • 更尊重用戶交互流程
  • 更易于實現符合可訪問性標準的設計

對于尚不支持這兩個新選擇器的瀏覽器,也可以通過替代方案(如:placeholder-shown)達到類似效果。

實際應用示例與實現方法

以下是具體實現方案與推薦用法。

第一步:給表單字段添加 required 屬性

首先,確保表單字段具有 HTML 原生驗證能力:

<input type="email" placeholder="請輸入郵箱" required />

提醒:這一設置讓瀏覽器明確字段何時為無效,但此時不要過早給予視覺反饋。

第二步:使用 :user-valid 和 :user-invalid

通過如下 CSS 實現用戶交互后的驗證反饋:

/* 默認狀態:保持中立外觀 */
input {
  border: 1px solid #ccc;
}

/* 用戶交互后且輸入有效 */
input:user-valid {
  border: 2px solid green;
  background-color: #e6ffe6;
}

/* 用戶交互后且輸入無效 */
input:user-invalid {
  border: 2px solid red;
  background-color: #ffe6e6;
}

現在,視覺反饋只有在用戶真正互動之后才會展現。

兼容性方案:不支持 :user-valid 時的降級方案

對于不支持 :user-valid 的瀏覽器,可以使用 :placeholder-shown 結合傳統偽類實現類似的延遲反饋效果:

/* 用戶未輸入時顯示占位符的中立狀態 */
input:placeholder-shown {
  border: 1px solid #ccc;
  background-color: white;
  color: #666;
}

/* 用戶輸入有效且占位符消失 */
input:valid:not(:placeholder-shown) {
  border: 2px solid green;
  background-color: #e6ffe6;
}

/* 用戶輸入無效且占位符消失 */
input:invalid:not(:placeholder-shown) {
  border: 2px solid red;
  background-color: #ffe6e6;
}

:placeholder-shown 可準確識別用戶是否已輸入,從而避免初始加載時的視覺誤導。

小結:為用戶提供更友好的表單體驗

表單設計的核心是給用戶帶來清晰、直觀且有益的交互反饋:

  • 避免用戶還未操作即給予視覺提示。
  • 等待用戶實際交互后再應用驗證反饋。
  • 提升表單易用性與用戶滿意度。

因此,建議開發者停止使用傳統的 :valid 與 :invalid 進行即時反饋,轉而采用 :user-valid 和 :user-invalid 來實現更精確、更符合用戶期望的交互效果。

責任編輯:武曉燕 來源: 大遷世界
相關推薦

2021-04-27 09:00:00

PythonIDE開發

2024-04-03 08:28:31

GolangPHP語言

2011-12-07 20:43:33

2024-11-19 10:26:35

2019-05-20 13:45:15

MySQL新特性數據庫

2016-01-08 14:44:29

智能家居wifi

2023-10-04 07:25:59

JavaScriptpromises

2021-12-03 10:15:10

FlowTypescript開發

2020-11-20 07:54:22

Java 特性語句

2017-06-27 15:08:05

大數據Apache SparKafka Strea

2009-02-25 19:47:54

IT認證思科認證微軟認證

2022-03-09 08:14:24

CSS容器container

2019-08-26 18:45:59

RedisRedis4.0數據庫

2023-05-24 16:41:41

React前端

2025-05-23 10:19:14

2020-06-17 15:00:27

FedoraUbuntuLinux

2023-10-08 11:53:29

2021-07-30 11:16:38

云存儲本地存儲

2023-08-29 11:37:10

云計算數據中心

2021-12-07 11:18:40

前端代碼規范工具開發
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 男人的天堂亚洲 | 欧美啪啪网站 | 99视频在线免费观看 | 一区二区在线不卡 | 色综合久久天天综合网 | 国产精品一区二区视频 | 欧美在线综合 | 久久久人成影片免费观看 | 成人激情视频网 | 亚洲精品1 | 久草.com| 黄色片网站国产 | 老外几下就让我高潮了 | 久www | 日韩在线精品视频 | 日本成人免费网站 | se婷婷| 日本亚洲精品成人欧美一区 | 天堂一区二区三区 | 日本精品一区二区三区在线观看视频 | 久久精品在线播放 | 国内精品久久精品 | 毛片在线免费播放 | 97狠狠干| 国产精品久久九九 | 日韩国产在线观看 | 日韩中文字幕av | 欧美一区二区三区在线看 | 国产精品激情 | 欧美一级毛片在线播放 | 超碰97av | 亚洲精品久久久蜜桃网站 | 先锋av资源在线 | 日本久草 | 亚洲一区二区不卡在线观看 | 中文字幕一区二区三区四区五区 | 国产精品亚洲精品日韩已方 | 国产成人福利视频 | 久久国产精品-国产精品 | 日韩精品极品视频在线观看免费 | 国产成人99久久亚洲综合精品 |