首頁  >  文章  >  web前端  >  詳解css3美化單選按鈕radio實例

詳解css3美化單選按鈕radio實例

WBOY
WBOY原創
2017-06-30 16:21:531938瀏覽

這種純CSS3美化單選按鈕radio的方法適用於以下情況:

1、可相容IE9以上,需要相容IE8的要寫IE的hack把樣式去掉

2.只支援單選按鈕radio,因為單選按鈕選取樣式的圓圈可以用CSS做出來,但是複選按鈕checkbox的選取效果對勾選就需要圖片或圖示字體庫

3、不需要JS支援切換效果

<label for="man" class="radio">
    <span class="radio-bg"></span>
    <input type="radio" name="sex" id="man" value="男" checked="checked" /> 男
    <span class="radio-on"></span>
</label>
<label for="woman" class="radio">
    <span class="radio-bg"></span>
    <input type="radio" name="sex" id="woman" value="女" /> 女
    <span class="radio-on"></span>
</label>

CSS程式碼:

.radio{
    display: inline-block;
    position: relative;
    line-height: 18px;
    margin-right: 10px;
    cursor: pointer;
}
.radio input{
    display: none;
}
.radio .radio-bg{
    display: inline-block;
    height: 18px;
    width: 18px;
    margin-right: 5px;
    padding: 0;
    background-color: #45bcb8;
    border-radius: 100%;
    vertical-align: top;
    box-shadow: 0 1px 15px rgba(0, 0, 0, 0.1) inset, 0 1px 4px rgba(0, 0, 0, 0.1) inset, 1px -1px 2px rgba(0, 0, 0, 0.1);
    cursor: pointer;
    transition: all 0.2s ease;
}
.radio .radio-on{
    display: none;
}
.radio input:checked + span.radio-on{
    width: 10px;
    height: 10px;
    position: absolute;
    border-radius: 100%;
    background: #FFFFFF;
    top: 4px;
    left: 4px;
    box-shadow: 0 2px 5px 1px rgba(0, 0, 0, 0.3), 0 0 1px rgba(255, 255, 255, 0.4) inset;
    background-image: linear-gradient(#ffffff 0, #e7e7e7 100%);
    transform: scale(0, 0);
    transition: all 0.2s ease;
    transform: scale(1, 1);
    display: inline-block;
}

這個方法中最重要的是選取效果的類別名稱:.radio input:checked + span.radio-on

+是CSS2的偽類,其意義為:div+p 選擇緊接在dc6dce4a544fdca2df29d5ac0ea9906b 元素之後的所有e388a4556c0f65e1904146cc1a846bee 元素。

也就是找到選取的(:checked)的input,其之後的類別名稱為radio-on的span元素做選取圓圈效果。

 

網路上有很多美化方法是把label做成了圓圈,但是這樣的話,單選的文字就必須要放到label的外面,這導致了點擊文字的時候,不能切換單選效果。


以上是詳解css3美化單選按鈕radio實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn