成人免费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 來實現更精確、更符合用戶期望的交互效果。

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

2024-04-03 08:28:31

GolangPHP語言

2021-04-27 09:00:00

PythonIDE開發

2011-12-07 20:43:33

2024-11-19 10:26:35

2019-05-20 13:45:15

MySQL新特性數據庫

2021-12-03 10:15:10

FlowTypescript開發

2016-01-08 14:44:29

智能家居wifi

2023-10-04 07:25:59

JavaScriptpromises

2020-11-20 07:54:22

Java 特性語句

2017-06-27 15:08:05

大數據Apache SparKafka Strea

2009-02-25 19:47:54

IT認證思科認證微軟認證

2019-08-26 18:45:59

RedisRedis4.0數據庫

2022-03-09 08:14:24

CSS容器container

2023-05-24 16:41:41

React前端

2025-05-23 10:19:14

2021-07-30 11:16:38

云存儲本地存儲

2021-12-07 11:18:40

前端代碼規范工具開發

2023-08-29 11:37:10

云計算數據中心

2023-10-08 11:53:29

2020-06-17 15:00:27

FedoraUbuntuLinux
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲国产精品一区二区第一页 | 91精品国产色综合久久 | 国产视频久久久久 | 国产日屁 | 国产一区不卡 | 亚洲精品国产一区 | 精品欧美一区二区三区久久久 | 精品1区| 亚洲欧美中文日韩在线 | 久久久久久免费毛片精品 | www312aⅴ欧美在线看 | 成人午夜影院 | 精品国产乱码久久久久久中文 | 欧美激情亚洲 | 日韩在线一区视频 | 天堂在线中文 | 免费视频99 | 成人精品在线观看 | 91色啪 | 91香蕉视频在线观看 | 亚洲福利一区二区 | 中文字幕在线观看视频网站 | 日本精品一区二区 | 国产欧美精品 | 欧美精品一二区 | 久久999| 久久国产综合 | 亚洲欧美国产毛片在线 | 国产欧美在线播放 | 涩涩视频网站在线观看 | 精品日韩 | av看看| 看一级毛片 | av一级一片 | 国产一级特黄真人毛片 | 亚洲aⅴ| www国产成人免费观看视频,深夜成人网 | 国产一极毛片 | 国产 日韩 欧美 在线 | 欧美成人精品 | 日韩国产三区 |