Css實現checkbox及radio樣式自定義

2022-03-31 06:41:01 字數 1577 閱讀 3473

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...