天天看點

學會這9個僞類,讓你的頁面/表單更人性化

前言

一個優秀的網站永遠都不是冷冰冰的,情感化、人性化一直是現代化網站所追求的!情感化設計利用彩配色激發使用者情感,或高興,或溫暖,或甯靜祥和;利用簡單易懂,自由流暢的互動設計,吸引使用者點選或參與;以及利用暖心體貼的界面文本設計,打動使用者等等。

不知道有多少人關注過蘋果的官方,大膽的顔色,驚人的動畫,我覺得這就是具有情感的網站

學會這9個僞類,讓你的頁面/表單更人性化

雖然我們不是設計師,但是作為一個好的前端開發,在網站開發的時候也是需要一點人性化的意識,下面這兩個輸入框,在邊框 邊距 邊角都不相同,最終的效果也各不相同。

學會這9個僞類,讓你的頁面/表單更人性化

不讨論具體的設計,單純的介紹幾個僞類,希望這幾個僞類,能讓你有所收獲。

:read-write

比對規則

:read-write選擇器将在以下情況下比對元素:

非readonly和disabled的input

input:read-write {
  background: #2ecc71;
}

<input type="text" value="正常 input" />      
學會這9個僞類,讓你的頁面/表單更人性化

非readonly和disabled的textarea

textarea:read-write {
  background: #2ecc71;
}
<textarea >正常 textarea</textarea>      
學會這9個僞類,讓你的頁面/表單更人性化

可以設定contenteditable的元素

p:read-write {
  background: #2ecc71;
}
<p  contenteditable>contenteditable p</p>      
學會這9個僞類,讓你的頁面/表單更人性化

:readonly

具有readonly/disabled 屬性的input/textarea等form元素

input:read-only {
  background: #e74c3c;
}
<input type="text" value="diabled input" disabled />
<input  type="text" value="readonly input" readonly />      
學會這9個僞類,讓你的頁面/表單更人性化

其他不可編輯的元素

p:read-only {
  background: #e74c3c;
}
<p class="testInput">普通 p</p>
      
學會這9個僞類,讓你的頁面/表單更人性化

:required

我覺得這個屬性真的特别好,之前我們在做表單的時候,經常會在前面加一個*表示必須輸入,或者當使用者輸入完之後提示一下某某字段是必須輸入的,使用者體驗真的确實不好。但是有個這個屬性,我們就可以來針對必須輸入的input進行個性化的設定。

設定了required屬性的<input>,<select>, 或 <textarea>元素

input:required,
textarea:required {
  border-color: red ;
}      
學會這9個僞類,讓你的頁面/表單更人性化
學會這9個僞類,讓你的頁面/表單更人性化

:focus

設定目前由鍵盤tab或由滑鼠激活的元素的樣式。

:focus 基本上可以作用在大部分的元素上,設定了contenteditable或者tabindex 的元素也支援。

像<a>, <button>, <input>, <textareas> 各個浏覽器都有不同的預設樣式。

:focus可以設定為全局也可以針對特定的元素。

:focus {
        background: #2ecc71;
      }      
學會這9個僞類,讓你的頁面/表單更人性化
學會這9個僞類,讓你的頁面/表單更人性化
學會這9個僞類,讓你的頁面/表單更人性化

:disabled

<button>,<input>,<textarea>,<optgroup>,<option>和<fieldset> 都可以設定:disabled 屬性

input:disabled {
  background: #e74c3c;
}      
學會這9個僞類,讓你的頁面/表單更人性化

:enabled

<input>, <select>, <textarea>可以設定屬性,與:disabled 相反。

:invalid和:valid

這兩個屬性在使用者與頁面上的表單互動時向他們提供回報。

比如下面這個例子:驗證郵箱格式是否正确,之前我們會怎麼做,當使用者輸入完成送出的時候,彈對話框告訴使用者格式不正确。用這兩個屬性就讓事情很簡單!

input:invalid {
  background: hsla(0, 90%, 70%, 1);
}

input:valid {
  background: hsla(100, 90%, 70%, 1);
}


<label for="email">Email:</label>
<input type="email" name="email" />      

開始的效果;

學會這9個僞類,讓你的頁面/表單更人性化

不正确的效果:

學會這9個僞類,讓你的頁面/表單更人性化

正确的效果

學會這9個僞類,讓你的頁面/表單更人性化

:checked

僅<input> type為radio 和 checkbox 可以設定。

學會這9個僞類,讓你的頁面/表單更人性化

沒有選中的效果

學會這9個僞類,讓你的頁面/表單更人性化

選中後的效果

學會這9個僞類,讓你的頁面/表單更人性化

結語

本文僅僅是單純的介紹,并沒有過多的介紹使用的場景或者是設計,

隻是希望大家可以多多使用這些僞類,來更好的服務使用者。

繼續閱讀