checkbox和radio樣式自定義在網頁中是很常見的, 比如在進行表單輸入時性別的選擇,使用者註冊時選擇已閱讀使用者協議。隨著使用者對產品體驗要求越來越高,我們都會對checkbox和radio重新設計,checkbox預設的樣式非常醜 ,無法直接修改checkbox和radio的樣式,這裡我們借助label標籤來對它進行樣式美化。
先看實現效果圖,如下:
1.設定input 屬性hidden對該input進行隱藏,或者通過display:none也可以
2.借助label for標籤通過id繫結input ,這樣在點選label時實際就是點選了input
3.定義label的樣式,設定未選中狀態的背景圖
.advice
4.使用相鄰選擇器設定選中狀態label的樣式
input[type="radio"]:checked + .advice
請選擇反饋的問題:
問題建議 1
以上是radio單選框的實現**,checkbox也是類似 將input type定義成checkbox即可
1.獲取radio的值
使用jquery獲取radio的值有3種方式:
$('input:radio:checked').val();
$("input[type='radio']:checked").val();
$("input[name='rd']:checked").val();
2.獲取checkbox的值
var obj = document.getelementsbyname("hobby");
var check_val = ;
for(k in obj)
}
一開始寫的時候,我是使用偽元素的方式實現,先將input進行隱藏 ,然後設定input:after定義它的樣式,**如下:
//html
male
//css
input[type=radio]
input[type=radio]:checked::after
input[type=radio]::after
但是後來發現這種方式相容性有問題,在firefox瀏覽器無法顯示,經查資料是因為input不支援偽元素:after,:before 。
火狐瀏覽器無法插入內容dom元素,偽元素都是在容器內進行渲染的。input無法容納其他元素,因此它不支援偽元素。
input,img,iframe等元素都不能包含其他元素,所以不能通過偽元素插入內容。至於chrome 中checkbox和radio可以插入應該就是bug了
input要配合其它容器元素(i,span)等實現預期效果
標籤:radio,checkbox美化
純CSS實現多選元件 checkbox
具體的 實現參見 當我將之新增到我的手機論壇專案中時,發現想要的css效果沒有出現。原因是android和ios中系統元件對所用技術沒有很好的支援。在網上查了一些資料,了解到關於android系統,webkit,chrome和自帶瀏覽器的關係 android手機自帶的不是chrome而是chrome...
用css實現checkbox的開關效果
在移動端html5開發的時候,我們為了美觀,會是checkbox程式設計開關的樣子,比如下面 下面我們就來實現這個效果 一 html 二 css 開關 switch switch before switch checked switch checked before switch.switch an...
使用jQuery操作CheckBox與radio
頁面寫法,同乙個選項裡的設定同乙個name 籃球 使用checked可以在頁面初始化的時候預設選中 足球 羽毛球 點選的時候判斷當前是選中還是取消 name hobby click function 手動設定取消,選中 有兩種方式 hobby eq 0 attr checked true hobby...