2011-06-20 94 views
4

是否有一種方法可以使用自定義圖像來設置單選按鈕和複選框的樣式。只使用CSS?使用CSS的自定義收音機和複選框

有人能指出我該怎麼做嗎?

其他哪些是jquery最好的插件呢?

+1

閱讀此:http://ryanfait.com/resources/custom-checkboxes-and-radio-buttons/它應該讓你開始。 –

回答

3

你可以用純CSS3做到這一點,使用僞類:checked。通過這個article啓發我得到了以下解決方案:

特點:

  • 只有CSS
  • 沒有id屬性需要
  • 沒有z-index的需要

試試它的jsfiddle: http://jsfiddle.net/tlindig/n6by8/6/

HTML:

<label> 
    <input type="radio" name="rg"/><i></i> 
    option 1 
</label> 
<label> 
    <input type="radio" checked name="rg"/><i></i> 
    option 2 
</label> 
<label> 
    <input type="radio" name="rg"/><i></i> 
    option 3 
</label> 

CSS:

input[type="radio"] { 
    display:none; 
} 
input[type="radio"] + i:before { 
    content:'\2718'; 
    color:red; 
} 
input[type="radio"]:checked + i:before { 
    content:'\2713'; 
    color:green; 
} 

幾點說明:

i需要添加僞元素:before與圖標的內容。 input元素爲空標籤,不能具有像:before:after這樣的僞元素,所以我們需要額外的元素。您也可以使用spandiv,但是i更短。

label需要觸發input。如果用label元素包裝input,則不需要idfor屬性進行關聯。

'\ 2718'和'\ 2713'是「選票X」和「複選標記」的UTF8字符代碼。

而不是content你也可以設置一個background-image或你喜歡什麼。

它適用於所有現代瀏覽器和ie9 +。