直覺得原生的復(fù)選框樣子很丑,所以就動手制作了一個(gè)自己覺得還算可以的復(fù)選框。
哈哈,大神勿噴。
設(shè)計(jì)思路:首先利用一個(gè)容器包裹住原生的復(fù)選框,然后讓復(fù)選框變透明,當(dāng)復(fù)選框選中時(shí),容器的外觀發(fā)生改變;
先上html代碼:
用div包裹住原生復(fù)選框和span標(biāo)簽,主要利用span標(biāo)簽來模擬復(fù)選框的選中效果
注意input和span的順序不能顛倒
css:
用偽元素制作選中效果,css代碼如下:
利用偽元素制作打鉤圖案
然后將該效果在復(fù)選框未選中時(shí)隱藏
未選中時(shí)的復(fù)選框
接下來,實(shí)現(xiàn)復(fù)選框的選中效果
css代碼如下:
實(shí)現(xiàn)復(fù)選框的選中效果
復(fù)選框選中效果圖
就這樣,一款漂亮的復(fù)選框就這樣實(shí)現(xiàn)了。
如果你也喜歡前端,歡迎互相討論。
如果你覺得還可以,動一動你的小手指給個(gè)關(guān)注吧。
輯導(dǎo)語:如何針對具體場景選擇合適的組件,是web表單設(shè)計(jì)中的常見問題。那么,你知道開關(guān)、單選、復(fù)選框等組件的適用場景該如何選擇嗎?本篇文章里,作者就該問題做了詳細(xì)解答,一起來看一下吧。
在web表單設(shè)計(jì)中,我們會經(jīng)常遇到在開關(guān)、單選、復(fù)選框三個(gè)組件的選擇使用上糾結(jié),特別是只有兩種狀態(tài)下,比如開啟/關(guān)閉、啟用/關(guān)閉、顯示/隱藏、同意/不同意、默認(rèn)/自定義……
我們發(fā)現(xiàn)使用Switch開關(guān)、Radio單選和Checkbox復(fù)選這三個(gè)組件好像也都是可以的,這時(shí)應(yīng)該選擇哪個(gè)組件更合適呢?
本文主要探討這三個(gè)組件的基本特點(diǎn),以?及在web表單設(shè)計(jì)中,這三個(gè)組件使用上有什么區(qū)別,以及常見的場景如何去選擇。
開關(guān)作為仿照物理開關(guān)的映射,提供了兩種最為簡單、直接的對立選項(xiàng),比如開/關(guān)、啟動/禁用等。它就像生活中控制燈泡的開關(guān),點(diǎn)擊燈泡立即亮起。所以它的意符也必須明確,不然用戶都不知道,即將要啟動/關(guān)閉什么。
蘋果的「Human Interface Guidelines」有著這么一份對于開關(guān)組件的使用規(guī)范定義,我們不妨可以借鑒。
1) 避免使用開關(guān)控制局部細(xì)節(jié)或者次要的設(shè)置。開關(guān)的視覺權(quán)重比較高,所以用它控制內(nèi)容較多更為合適,比如可以將它作為總開關(guān)打開或關(guān)閉一組設(shè)置。
2) 通常不要用開關(guān)替代復(fù)選框。如果我們的規(guī)范中定義了復(fù)選框,則盡可能保持一致的使用規(guī)范。
通過上述對開關(guān)組件特點(diǎn),結(jié)合蘋果組件的規(guī)范,我們基本可以梳理出以下幾條主要主要使用場景:
1)開關(guān)的標(biāo)簽意符需傳達(dá)清晰
和單選、復(fù)選框不一樣的是,因?yàn)殚_關(guān)主體的信息和按鈕是分離的。用戶在點(diǎn)擊開關(guān)按鈕前,必須清晰告知用戶點(diǎn)擊后會發(fā)生什么,甚至有時(shí)我們需要通過增加副標(biāo)題來加以說明。
2)一般只為立即生效的場景使用開關(guān)按鈕
在表單填寫時(shí),往往最終會有「提交」按鈕作為結(jié)束態(tài),開關(guān)作為表單字段的填寫,用戶點(diǎn)擊后并不能夠立即生效,而是需要再次點(diǎn)擊「提交」按鈕。
3)有風(fēng)險(xiǎn),需著重提醒用戶
開關(guān)的視覺權(quán)重較高,在復(fù)雜的表單信息中,它能夠很快吸引到用戶的注意力,并能夠給用戶以視覺提醒。
4)避免大面積使用開關(guān),使用它控制局部細(xì)節(jié)或者次要設(shè)置
開關(guān)在視覺感知上它和按鈕上有些接近,所以盡可能避免在表單中大量使用開關(guān)來控制局部層級內(nèi)容,這時(shí)推薦使用復(fù)選框來替代開關(guān)作為局部。
5)把它作為高層級內(nèi)容控制或信息設(shè)置
把它用來作為總控制來顯示更高層級內(nèi)容,避免web表單中大面積的使用開關(guān)按鈕,會和其他的基本組件造成視覺干擾。這樣可以既凸顯其重要性,又能提升用戶瀏覽表單的效率。
開關(guān)按鈕就像是滅霸的戒指,視覺突出且反應(yīng)快。用戶瀏覽表單、填寫內(nèi)容組之間,一般不需要很強(qiáng)的視覺差異。如果填寫的表單信息之間對比差異過大,開關(guān)往往給用戶造成過大的視覺干擾,反而阻礙用戶瀏覽表單的效率。
讓用戶在兩個(gè)布爾值之間進(jìn)行選擇,勾選后和未勾選表示“是/否、要/不要、開啟/關(guān)閉…” 等問題。以下內(nèi)容主要討論單個(gè)復(fù)選框的使用情況。
1)為了便于用戶快速理解,一般復(fù)選框的標(biāo)簽內(nèi)容是一句話,不會用逗號去作隔開。
2)作為單選狀態(tài)時(shí),操作對象和標(biāo)簽主體內(nèi)容視覺焦點(diǎn)是不分開的,選擇后就知道它被選中了。
3)可直接表示標(biāo)簽內(nèi)容的開啟、關(guān)閉。
1) 用戶基本清楚會發(fā)生什么,使用復(fù)選框
如果使用開關(guān)或者單選框,我們會發(fā)現(xiàn)視覺干擾特別嚴(yán)重,一般表單內(nèi)容不需要特別去強(qiáng)調(diào)每一個(gè)字段的開啟狀態(tài)。當(dāng)然如果排版限制,我們也是可以將復(fù)選框放到標(biāo)簽的右側(cè)(放右側(cè)復(fù)選框需對齊)。
2)表單中的復(fù)選框生效,需要配合提交按鈕
一般情況下,表單填寫中,復(fù)選框不會像開關(guān)點(diǎn)擊后立即生效,它需要配合提交按鈕生效。所以用戶在提交前可查看他們填寫的表單,更有助于在信息防錯(cuò)。
(Ps. 在設(shè)置頁,復(fù)選框可單獨(dú)作為設(shè)置且立即生效。)復(fù)選框的主體標(biāo)簽信息和復(fù)選按鈕在一起,特別是對于批量填寫或設(shè)置一批字段,使用復(fù)選框效率更高。
3)用復(fù)選框來控制表單局部細(xì)節(jié)
如上述,如果控制對象的功能是表單的一個(gè)局部,或信息內(nèi)容不是很多,用戶也清楚知道選擇后會是什么,這時(shí)候復(fù)選框更適合。
這時(shí)我們不需要過重地給用戶強(qiáng)調(diào)什么,用復(fù)選框會比使用開關(guān)讓整個(gè)表單的結(jié)構(gòu)內(nèi)容更清晰。
復(fù)選框就像是一個(gè)機(jī)器小能手,它的應(yīng)用拓展性比開關(guān)更強(qiáng),它既可以作為層級內(nèi)容使用,又可以作為設(shè)置項(xiàng),點(diǎn)擊后并立即生效。
在表單中,作為局部、或者細(xì)節(jié)內(nèi)容控制,使用復(fù)選框更合適。它也不會像單選按鈕閱讀有信息阻斷的問題,不會像開關(guān)有強(qiáng)視覺干擾,它會讓我們的視覺焦點(diǎn)更集中表單信息上。
單選按鈕最早的設(shè)計(jì)模型,來源于收音機(jī)切換頻道的按鍵,當(dāng)我們按下其中一個(gè),其他的按鈕就會被彈出,按下的那個(gè)按鈕就成為了選中的狀態(tài)。單選按鈕可謂是涇渭分明,有你不能有我。
單選按鈕的優(yōu)點(diǎn)是,將所有信息條件暴露給到用戶,它不像開關(guān)在使用上帶有去猜測、探索的必要。
1)每個(gè)選擇都非常直觀,如果希望用戶閱讀完所有選項(xiàng),用它再好不過了。
2)拓展性更強(qiáng),相較于開關(guān)、復(fù)選框的布爾值,單選能承載兩個(gè)或兩個(gè)以上選擇。
3)必須提供默認(rèn)值,且默認(rèn)值可以承載內(nèi)容。
1)需要讓用戶明確知道兩者的區(qū)別,甚至需要強(qiáng)調(diào)兩個(gè)選項(xiàng)的不同
如果采用復(fù)選框,用戶需要在兩個(gè)差距較大的選項(xiàng)中去作思考。
2)開啟/關(guān)閉的單選狀態(tài),使用復(fù)選框
復(fù)選框?qū)τ诮^大多數(shù)用戶都是非常清楚,使用復(fù)選框在空間、視覺焦點(diǎn)更是更集中的,所以如果只針對開啟/關(guān)閉的狀態(tài),推薦使用復(fù)選框
3)每個(gè)選項(xiàng)都關(guān)聯(lián)內(nèi)容時(shí),使用單選按鈕
我們知道,如果默認(rèn)選項(xiàng)設(shè)計(jì)的好,會讓很多人保持選擇默認(rèn)選項(xiàng)。
下圖這個(gè)案例,如果采用復(fù)選框或者開關(guān),用戶就不得不去探索思考開啟后是什么,還要擔(dān)心理解開啟/關(guān)閉后帶來的影響,而對于絕大多數(shù)用戶來說,這邊的報(bào)名設(shè)置系統(tǒng)默認(rèn)內(nèi)容無需改動。需注意給用戶提供的默認(rèn)選擇,一定要是安全、方便的選項(xiàng)。
4)較長需隱藏拆分的內(nèi)容情況,使用單選按鈕
在表單設(shè)計(jì)中,如果遇到的內(nèi)容需要重新組織或者拆分時(shí),選擇使用單選按鈕。這樣不僅能夠做到表單信息簡潔,也能夠提高用戶的瀏覽效率。
5)垂直排列單選,信息閱讀更佳
如果字段名稱較長,需要添加副標(biāo)題加以說明,這時(shí)單選按鈕承載的信息較多,使用垂直排列讓用戶有一致的起始閱讀線,眼球轉(zhuǎn)動幅度最小,信息獲取體驗(yàn)更佳。如果標(biāo)簽文字較少,也可以橫排不至于占用太多的垂直空間。
單選按鈕就是白天和黑夜,互不干擾的條件,希望用戶閱讀完這兩個(gè)選項(xiàng),使用單選按鈕再好不過了,考慮到單選按鈕提供的默認(rèn)選項(xiàng),提供的要是絕大多數(shù)用戶需要的,且是安全方便的,如果單選按鈕標(biāo)簽文字過多,在排版時(shí)垂直排列拓展性更強(qiáng),閱讀體驗(yàn)更佳。
1)開關(guān)更像是一個(gè)滅霸的戒指閃閃發(fā)光,不過在表單結(jié)構(gòu)、各種控件內(nèi)容較多,需要頁面清晰、避免過多的視覺突出,所以盡量避免讓無數(shù)個(gè)戒指閃亮中表單中。
2)復(fù)選框它更像是一個(gè)機(jī)器小能手,適用和拓展性極強(qiáng),即可以單獨(dú)作為設(shè)置,不用配合其他提交按鈕,也可以作為表單填寫的一部分。當(dāng)我們猶豫使用哪個(gè)組件時(shí),選擇它一般不會錯(cuò)。
3)單選按鈕就像是白天和黑夜,完全不見彼此。單選條件承載的信息也較多,如果希望用戶對比感知到兩者信息的不同,那么使用單選按鈕。
4)最后理論永遠(yuǎn)只是指導(dǎo)實(shí)踐的一部分,上述內(nèi)容可能只是在用戶認(rèn)知和易用性之間,找到一個(gè)相對平衡的點(diǎn),具體的使用場景情況,還是要具體問題具體分析。
參考文獻(xiàn)
Nielsen Norman Group
Human Interface Guidelines
http://www.woshipm.com/pd/374314.html
http://www.woshipm.com/ucd/1267601.html
本文由 @小高雜談 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載。
題圖來自Unsplash,基于CC0協(xié)議
注本頭條號,專注做前端。
經(jīng)常做前端頁面,單選框、復(fù)選框美化是不可或缺的,考慮到兼容性,我們通常在PC項(xiàng)目中用 —— checkRadio.js 來做美化,手機(jī)端H5頁面則可以用css3實(shí)現(xiàn) —— 因?yàn)槭謾C(jī)端全部支持css3,記住這一點(diǎn)。
今天要分享的是純css3美化,外觀很時(shí)尚
//
*請認(rèn)真填寫需求信息,我們會在24小時(shí)內(nèi)與您取得聯(lián)系。