CSS3 :default偽類選擇器使用簡介
一、CSS3 :default偽類選擇器簡介
CSS3 :default 偽類選擇器只能作用在表單元素上,表示默認狀態(tài)的表單元素。
舉個例子,一個下拉框,可能有多個選項,我們默認會讓某個 <option> 處于 selected 狀態(tài),此時這個 <option> 可以看成是處于默認狀態(tài)的表單元素(例如下面示意代碼的“選項4”),理論上可以應用 :default 偽類選擇器。
<select multiple>
<option>選項1</option>
<option>選項2</option>
<option>選項3</option>
<option selected>選項4</option>
<option>選項5</option>
<option>選項6</option>
</select>
假設CSS如下:
option:default {
color: red;
}
則在Chrome瀏覽器下,當我們選擇其他選項,此時就可以看到選項4是紅色了,效果如下圖:
Firefox瀏覽器下效果也是類似:
IE瀏覽器則不支持。
因此,移動端可以放心使用,桌面端不用管IE的項目也可以用起來。
二、CSS3 :default偽類選擇器作用
CSS3 :default 偽類選擇器作用設計的作用是讓用戶在選擇一組數據的時候,依然知道默認選項是什么,否則其他選項一多,選著選著就不知道默認提供的是哪個了,算是一種體驗增強策略。作用不是很強烈,但是關鍵時刻卻很有用。
三、CSS3 :default偽類選擇器一些特性研究
1. 研究1:JS快速修改會不會有影響?
測試代碼如下:
:default {
transform: sclae(1.5);
}
<input type="radio" name="city" value="0">
<input type="radio" name="city" value="1" checked>
<input type="radio" name="city" value="2">
<script>
document.querySelectorAll('[type="radio"]')[2].checked = true;
</script>
也就是HTML設置的是第2個單選框放大1.5倍,JS立即瞬間設置第3個單選框選中,結果發(fā)現就算很快,哪怕是幾乎無延遲的JS修改, :default 偽類選擇器的渲染依然不受影響。
因此,本題答案是無影響。
2. 研究2: <option> 如果沒有設置 selected 屬性,瀏覽器會默認呈現第1個 <option> ,此時第1個 <option> 響應 :default 偽類選擇器嗎?
例如:
option:default {
color: red;
}
<select name="city">
<option value="-1">請選擇</option>
<option value="1">北京</option>
<option value="2">上海</option>
<option value="3">深圳</option>
<option value="4">廣州</option>
<option value="5">廈門</option>
</select>
結果第一個 <option> 沒有紅色,如下圖,因此, :default 選擇器要想有作用,必須要 selected 為 true 。同樣的,對于單復選框, checked 值也要是 true 。
因此,本題答案是不會響應。
四、CSS3 :default偽類選擇器實際應用
雖然說 :default 選擇器是用來標記默認狀態(tài)的,避免選擇混淆。但是實際上,在我看來,更有實用價值的應該是“推薦標記”。
現代web應用越來越智能,有時候有些操作會智能給用戶push一些選擇,其中默認將推薦的設置設為 checked 狀態(tài),以前我們的做法是另外輸出文字“(推薦)”,現在有了 :default 選擇器,我們的實現可以變得更加簡潔,也更容易維護。
您可以狠狠地的點擊這里: :default選擇器與自動添加推薦字樣demo
效果如下圖:
點擊其他選項,“推薦”二字依然穩(wěn)固。以后,如果要更換推薦選項了,直接修改 input 的 checked 屬性就可以,維護更簡單了。
相關CSS和HTML代碼如下:
input:default + label::after {
content: '(推薦)';
}
<p><input type="radio" name="pay" id="pay0"> <label for="pay0">支付寶</label></p>
<p><input type="radio" name="pay" id="pay1" checked> <label for="pay1">微信</label></p>
<p><input type="radio" name="pay" id="pay2"> <label for="pay2">銀行卡</label></p>
總結
以上所述是小編給大家介紹的CSS3 :default偽類選擇器使用簡介,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
相關文章
這篇文章主要介紹了css3的focus-within選擇器的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習2020-05-11
這篇文章主要介紹了詳解如何使用CSS3中的結構偽類選擇器和偽元素選擇器,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面2020-01-06- 這篇文章主要介紹了CSS3 新增選擇器的實例,需要的朋友可以參考下2019-11-13
如果說 css 作為前端開發(fā)的基本功, 那么 "選擇器" 就是基礎中的基礎,本文介紹了css3 偽類選擇器快速復習,文中通過示例代碼介紹的非常詳細,對大家的學習或者工2019-09-10- 這篇文章主要介紹了css3之UI元素狀態(tài)偽類選擇器 ,其中包括hover、active和focus,enabled,disabledread-only與read-write 等等,需要的朋友可以參考下2017-08-11
這篇文章主要介紹了CSS3選擇器新增問題的實現,本文給大家介紹的非常詳細對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-21





