1. 程式人生 > >自定義單選框樣式方法

自定義單選框樣式方法

元素的初始樣式都不怎麼好看,我們一般修改樣式會想到直接在那元素上新增樣式,比如background、border等,在大多數元素上是可以這麼做,但當遇上了單選框會毫無反應。

例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>style無法直接修改單選框樣式</title>
    <style>
        .radio{
            width: 100px;
            height
: 100px; background-color: red; }
</style> </head> <body> <input type="radio" class="radio"/> </body> </html>

在這裡插入圖片描述

怎麼解決呢?

使用label進行偽元素(或一些標籤,比如i,em,span等)和input繫結,隱藏單選框,顯示偽元素,且使用css選擇器:checked進行點選後偽元素(或繫結標籤)內容(或樣式)的修改。

以下例子只是修改偽元素的內容。

<!DOCTYPE html>
<html lang="en"> <head> <meta charset="UTF-8"> <title>修改單選框樣式</title> <style> /*.radio{*/ /*width: 100px;*/ /*height: 100px;*/ /*background-color: red;*/ /*}*/ .radio { display: none; } /* +代表相鄰的元素 */
.radio + i { font-style: normal; text-align: center; font-size: 16px; } /* ::after偽元素,使用偽元素,必須含有content屬性,可以為'',但不可不寫 */ .radio + i::after { content: '☆'; } /* 點選後偽元素內容變化 */ .radio:checked + i::after { content: '★'; }
</style> </head> <body> <label> <input type="radio" class="radio" name="aa" id="aa"/> <i></i> aa </label> <label> <input type="radio" class="radio" name="aa" id="bb"/> <i></i> bb </label> </body> </html>

完成後的結果在這裡插入圖片描述 在這裡插入圖片描述