1. 程式人生 > >純css編寫開關按鈕

純css編寫開關按鈕

程式碼展示

<!DOCTYPE html>
<html>
<head>
    <title>css編寫開關按鈕</title>
    <style type="text/css">
        .chooseBtn {
            display: none;/*隱藏的是勾選的複選框*/
        }
        .choose-label {
            /*box-shadow屬性向框新增一個或多個陰影。可以使用 border-image-* 屬性來構造漂亮的可伸縮按鈕*/
            box-shadow: #ccc 0px 0px 0px 1px;
            width: 40px;/*按鈕的寬度*/
            height: 20px;
            display: inline-block;
            border-radius: 20px;
            position: relative;
            background-color: #bdbdbd;
            overflow: hidden;
        }
        .choose-label:before {
            content: '';
            position: absolute;
            left: 0;
            width: 20px;
            height: 20px;
            display: inline-block;
            border-radius: 20px;
            background-color: #fff;
            z-index: 20;
            -webkit-transition: all 0.5s;
            transition: all 0.5s;
        }
        /*加號(+)為:相鄰同胞選擇器*/
        /*“+”是選擇相鄰兄弟,叫做“相鄰兄弟選擇器”。如果需要選擇緊接在另一個元素後的元素,而且二者有相同的父元素,可以使用相鄰兄弟選擇器*/
        .chooseBtn:checked + label.choose-label:before {/*:before 表示在元素之前插入新的內容*/
        /*選擇緊接在.chooseBtn元素後出現的.choose-label元素(需要滿足.chooseBtn和.choose-label元素擁有共同的父元素)*/
            left: 20px;
        }
        .chooseBtn:checked + label.choose-label {
            background-color: #51ccee;
        }
    </style>
</head>
<body>
    <input type="checkbox" name="sex" id="male" class="chooseBtn" />
    <label for="male" class="choose-label"></label>
</body>
</html>

效果圖展示

小提示

<label> 標籤為 input 元素定義標註(標記)。

label 元素不會向用戶呈現任何特殊效果。不過,它為滑鼠使用者改進了可用性。如果您在 label 元素內點選文字,就會觸發此控制元件。就是說,當用戶選擇該標籤時,瀏覽器就會自動將焦點轉到和標籤相關的表單控制元件上。

<label> 標籤的 for 屬性應當與相關元素的 id 屬性相同。