純CSS實現表單驗證

2021-06-28 16:16:20 字數 2006 閱讀 4979

關鍵在於使用css selectors levle4裡的一些偽類實現表單驗證,這些偽類有:

上面的案例就是使用了:in-range和:out-of-range,接下去我們來一一解讀下。

:required可以選中具有required屬性的表單元素,可以是input、select和textarea,例如下面這些元素都會被選中。

type="name"

required>

type="checkbox"

required>

type="email"

required>

name="name"

id="message"

cols="30"

rows="10"

required>

textarea>

name="nm"

id="sel"

required>

select>

/*可選表單樣式*/

input

:optional,

select

:optional

/*必選表單樣式*/

input

:required,

textarea

:required

/*可選表單提示文字*/

input

:optional+label

::after

/*必選表單提示文字*/

input

:required+label

::after

/*可選表單啟用效果*/

input

:optional

:focus,

select

:optional

:focus

/*必選表單啟用效果*/

input

:required

:focus,

select

:required

:focus,

textarea

:required

:focus

這兩個偽類分別選中表單屬性值在範圍內、範圍外兩個狀態,這兩個偽類可以用在接受數字範圍的元素上,例如type為number的表單或者sliders。案例效果如上面「案例欣賞」版塊所示,我們這裡僅僅展示核心**,藉以幫助大家理解兩個偽類的使用。

input

:out-of-range

input

:in-range~ label

::after

input

:out-of-range ~ label

::after

input

:invalid

input

:valid~ label

::after

input

:invalid ~ label

::after

下面這些元素可以啟用:read-only偽類。

例如下面****所示的元素,都可以啟用:read-only偽類選擇器。

type="text"

disabled>

type="number"

disabled>

type="number"

readonly>

name="nm"

id="id"

cols="30"

rows="10"

readonly>

textarea>

class="random">

div>

:read-write元素恰恰與:read-only元素相反。 

這個比較簡單,就不再做案例。謝謝。

上述的幾個偽類選擇器在標準瀏覽器(chrome、safari、opera、firefox)裡支援良好,ie支援不好。

純CSS實現表單驗證

github krisachan 在我們的日常業務中,表單驗證是個很常見設計需求,像一些登入註冊框,問卷調查也都需要用到表單驗證。一般我們的實現思路都是js監聽input框的輸入內容,判斷使用者輸入內容,從而以此來決定下一步的操作。例如這樣 以下例子來自優秀的開源ui庫,element number...

多個form 驗證 css實現input表單驗證

我有這個想法是因為我想完成乙個自動補全的input部件,最基本的功能是 如果input沒有內容,這隱藏下拉框 反之,顯示下拉框 我找到了乙個也許不是很完美的實現方案,描述中可能會有一些細微的區別,不過我還是很希望能做這個簡單的分享 首先,我們構造乙個簡單的form表單,僅僅只有乙個input 當輸入...

純css實現箭頭

很久之前收集的,忘記出處了。1.梯形 當元素寬 高和邊框的寬相近 等 時,改變某一邊的顏色可以看到乙個梯形 border 10px solid 000 border left color f00 width 10px height 10px 2.三角形 當元素寬 高為零,且其他邊為透明顏色時,可以形...