
- CSS 教程
- CSS - 首頁
- CSS - 路線圖
- CSS - 簡介
- CSS - 語法
- CSS - 選擇器
- CSS - 包含
- CSS - 計量單位
- CSS - 顏色
- CSS - 背景
- CSS - 字型
- CSS - 文字
- CSS - 圖片
- CSS - 連結
- CSS - 表格
- CSS - 邊框
- CSS - 塊級邊框
- CSS - 內聯邊框
- CSS - 外邊距
- CSS - 列表
- CSS - 內邊距
- CSS - 游標
- CSS - 輪廓
- CSS - 尺寸
- CSS - 捲軸
- CSS - 內聯塊
- CSS - 下拉選單
- CSS - 可見性
- CSS - 溢位
- CSS - 清除浮動
- CSS - 浮動
- CSS - 箭頭
- CSS - 調整大小
- CSS - 引號
- CSS - 順序
- CSS - 位置
- CSS - 連字元
- CSS - 懸停
- CSS - 顯示
- CSS - 聚焦
- CSS - 縮放
- CSS - 平移
- CSS - 高度
- CSS - 連字元字元
- CSS - 寬度
- CSS - 不透明度
- CSS - Z 索引
- CSS - 底部
- CSS - 導航欄
- CSS - 覆蓋層
- CSS - 表單
- CSS - 對齊
- CSS - 圖示
- CSS - 圖片庫
- CSS - 註釋
- CSS - 載入器
- CSS - 屬性選擇器
- CSS - 組合器
- CSS - 根元素
- CSS - 盒模型
- CSS - 計數器
- CSS - 剪輯
- CSS - 書寫模式
- CSS - Unicode-bidi
- CSS - min-content
- CSS - 全部
- CSS - 內嵌
- CSS - 隔離
- CSS - 滾動溢位
- CSS - Justify Items
- CSS - Justify Self
- CSS - Tab Size
- CSS - 指標事件
- CSS - Place Content
- CSS - Place Items
- CSS - Place Self
- CSS - 最大塊級尺寸
- CSS - 最小塊級尺寸
- CSS - 混合模式
- CSS - 最大內聯尺寸
- CSS - 最小內聯尺寸
- CSS - 偏移
- CSS - 口音顏色
- CSS - 使用者選擇
- CSS 高階
- CSS - 網格
- CSS - 網格佈局
- CSS - Flexbox
- CSS - 可見性
- CSS - 定位
- CSS - 圖層
- CSS - 偽類
- CSS - 偽元素
- CSS - @規則
- CSS - 文字效果
- CSS - 分頁媒體
- CSS - 列印
- CSS - 佈局
- CSS - 驗證
- CSS - 圖片精靈
- CSS - 重要
- CSS - 資料型別
- CSS3 教程
- CSS3 - 教程
- CSS - 圓角
- CSS - 邊框圖片
- CSS - 多背景
- CSS - 顏色
- CSS - 漸變
- CSS - 盒陰影
- CSS - 盒裝飾斷開
- CSS - 游標顏色
- CSS - 文字陰影
- CSS - 文字
- CSS - 2d 變換
- CSS - 3d 變換
- CSS - 過渡
- CSS - 動畫
- CSS - 多列
- CSS - 盒尺寸
- CSS - 工具提示
- CSS - 按鈕
- CSS - 分頁
- CSS - 變數
- CSS - 媒體查詢
- CSS - 函式
- CSS - 數學函式
- CSS - 遮罩
- CSS - 形狀
- CSS - 樣式圖片
- CSS - 特異性
- CSS - 自定義屬性
- CSS 響應式
- CSS RWD - 簡介
- CSS RWD - 視口
- CSS RWD - 網格檢視
- CSS RWD - 媒體查詢
- CSS RWD - 圖片
- CSS RWD - 影片
- CSS RWD - 框架
- CSS 工具
- CSS - PX 到 EM 轉換器
- CSS - 顏色選擇器和動畫
- CSS 資源
- CSS - 有用資源
- CSS - 討論
CSS - 偽類 :invalid
CSS 偽類選擇器:invalid表示一個元素(例如<form>、<fieldset>或<input>),其內容或值根據其在type屬性中指定的型別無效,或無法透過驗證。
例如,電子郵件輸入<input type="email">其值與有效的電子郵件模式不匹配,或數字輸入<input type="number">具有包含字母的值。這兩種情況均無效。
偽類:invalid可用於向用戶指示欄位錯誤。
使用:out-of-range偽類應用的任何樣式都會覆蓋使用:invalid偽類應用的樣式。適用於<input type="number">。
:invalid偽類可以與其他選擇器一起使用,例如:hover、:focus等。
對於單選按鈕,如果其中一個為required,則:invalid偽類將應用於所有單選按鈕。
Gecko不應用樣式於:invalid偽類。但是,Gecko會應用樣式於:user-invalid偽類。
可訪問性問題:對於無效輸入,預設顏色為紅色,這對於某些色盲人士來說可能難以辨別。建議改用新增圖示或描述性文字以及無效輸入,以便於理解。
語法
:invalid { /* ... */ }
CSS:invalid 示例
以下示例演示了在輸入欄位上使用:invalid偽類的用法。在這裡,我們看到當欄位中的資料無效時,無論是超出指定範圍還是不正確,背景顏色都會發生變化。
<html> <head> <style> .container { margin: 40px auto; max-width: 700px; } p { font-size: 1.5em; } input { display: block; width: 50%; height: 2em; background-color: lightgray; } input:invalid { background-color: tomato; } input[type="number"]:invalid { background-color: orange; } input:invalid:focus { outline: 0; border: none; box-shadow: 0 0 5px 5px rgba(0, 136, 255, 0.3); } </style> </head> <body> <div class="container"> <p> Input type is number ranging between 1 and 10. </p> <input type="number" min="1" max="10" value="2"> <p> Input type is email, which is required. If empty, its invalid. </p> <input type="email" required> </div> </body> </html>
在上述示例中
提供了兩個輸入欄位,一個為數字型別,另一個為電子郵件型別。
數字輸入欄位提供了 CSS 樣式,以便如果值不是數字且不在 1 到 10 的範圍內,則將其標記為無效。
如果電子郵件輸入欄位不符合電子郵件模式或為空,則將其標記為無效。
另一個偽類:focus與:invalid一起使用,以便當無效欄位獲得焦點時,應用 CSS 樣式。
以下示例演示了在 fieldset 上使用:invalid偽類的用法。在輸入為空或不正確之前,輸入欄位和按鈕的可視性保持隱藏。
<html> <head> <style> /* Set the visibility to hidden for an invalid fieldset */ fieldset:invalid ~ fieldset { visibility: hidden; } /* Disable the button while the fieldsets have invalid value */ form:invalid button { background-color: darkgrey; opacity: 0.2; } input, textarea { box-sizing: border-box; width: 500px; font-family: monospace; padding: 0.25em 0.5em; } button { width: 200px; border: thin solid darkgrey; font-size: 1.25em; background-color: green; color: white; position:relative; } </style> </head> <body> <form> <fieldset> <label for="userid">UserId</label><br /> <input type="text" name="userid" id="userid" required /> </fieldset> <fieldset> <label for="email">Email</label><br /> <input type="email" name="email" id="email" required /> </fieldset> <button type="submit" name="send">Submit</button> </form> </body> </html>
在上述示例中
有兩個 fieldset,每個 fieldset 包含一個標籤和一個輸入元素,一個用於使用者 ID,另一個用於電子郵件。
第二個 fieldset 保持隱藏,直到第一個 fieldset 中傳遞有效值。
在兩個 fieldset 都具有有效值之前,按鈕保持停用狀態。
輸入元素設定為必填,因此使用者需要輸入有效輸入,只有這樣才能看到表單的其餘部分並對其進行操作。