DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> CSS入門知識 >> CSS詳解 >> 波CSS的Checkbox復選框樣式代碼分享
波CSS的Checkbox復選框樣式代碼分享
編輯:CSS詳解     
這篇文章主要介紹了一些CSS的Checkbox復選框樣式的代碼分享,針對一些簡單頁面控件的設計,需要的朋友可以參考下

Checkbox復選框是一個可能每一個網站都在使用的Html元素,但大多數人並不給它們設置樣式,所以在絕大多數網站它們看起來是一樣的。為什麼不把你的網站中的Checkbox設置一個與眾不同的樣式,甚至可以讓它看起來一點也不像復選框。

在本教程中,我們將創建5個不同的選擇框,你可以在你的網站上使用它。
20151116113259142.png (600×73)

查看演示,可以看到我們將要創建的復選框樣式。
演示地址

首先,需要添加一段CSS隱藏所有的Checkbox復選框,下面我們會改變它的外觀。要做到點需要添加一段代碼到你的CSS文件中。

CSS Code復制內容到剪貼板
  1. /**
  2. * 隱藏默認的checkbox
  3. */
  4. input[type=checkbox] {
  5. visibility: hidden;
  6. }

隱藏掉所有的Checkbox復選框後,我們需要添加一個label Html元素,我們都知道,當點擊的有for屬性的label標簽時,對應的Checkbox復選框會被選中。這意味著,我們可以通過label的點擊事件來處理我們的Checkbox復選框。

樣式一
20151116113348756.png (231×121)

此復選框風格就像一個解鎖滑塊,滑塊選中和未選中狀態會顯示在的不同位置。當單擊滑塊按鈕(label標簽),將會選中復選框,然後滑塊移動到ON位置。

我們開始創建復選框區的Html。

XML/Html Code復制內容到剪貼板
  1. <section>
  2. <!-- Checbox One -->
  3. <h3>Checkbox One</h3>
  4. <div class="checkboxOne">
  5. <input type="checkbox" value="1" id="checkboxOneInput" name="" />
  6. <label for="checkboxOneInput"></label>
  7. </div>
  8. </section>

因為這個樣式的復選框,一個label不足以完成任務,我們用一個DIV元素包含checkbox,我們需要使用它們來做黑色條帶和圓角。

CSS Code復制內容到剪貼板
  1. /**
  2. * Create the slider bar
  3. */
  4. .checkboxOne {
  5. width: 40px;
  6. height: 10px;
  7. background: #555;
  8. margin: 20px 80px;
  9. position: relative;
  10. border-radius: 3px;
  11. }

現在,我們可以把label作為條帶上的滑塊,我們希望按鈕效果是從條帶的一側移動到另一側,我們可以添加label的過渡。

CSS Code復制內容到剪貼板
  1. /**
  2. * Create the slider from the label
  3. */
  4. .checkboxOne label {
  5. display: block;
  6. width: 16px;
  7. height: 16px;
  8. border-radius: 50%;
  9. -webkit-transition: all .5s ease;
  10. -moz-transition: all .5s ease;
  11. -o-transition: all .5s ease;
  12. -ms-transition: all .5s ease;
  13. transition: all .5s ease;
  14. cursor: pointer;
  15. position: absolute;
  16. top: -3px;
  17. left: -3px;
  18. background: #ccc;
  19. }

現在這個滑塊在選中(關閉)位置,當我們選中復選框,我們希望有一個反應發生,所以我們可以移動滑塊到另一端。我們需要知道,判斷復選框被選中,如果是則改變label元素的left屬性。

CSS Code復制內容到剪貼板
  1. /**
  2. * Move the slider in the correct position if the checkbox is clicked
  3. */
  4. .checkboxOne input[type=checkbox]:checked + label {
  5. left: 27px;
  6. }

這就是你需要的第一個Checkbox復選框的CSS。

樣式二
20151116113455427.png (236×127)

此復選框風格像樣式一樣,但不同的是,這個滑塊按鈕會改變顏色。當您單擊滑塊按鈕,它移動到條帶的另一邊,並改變按鈕的顏色。

Html代碼和樣式一是完全一樣的。

XML/Html Code復制內容到剪貼板
  1. <section>
  2. <!-- Checbox Two -->
  3. <h3>Checkbox Two</h3>
  4. <div class="checkboxTwo">
  5. <input type="checkbox" value="1" id="checkboxTwoInput" name="" />
  6. <label for="checkboxTwoInput"></label>
  7. </div>
  8. </section>

這個DIV會變成比樣式一大一些的條帶,label依然是作為滑塊,使用下面的CSS來定義它。

CSS Code復制內容到剪貼板
  1. /**
  2. * Checkbox Two
  3. */
  4. .checkboxTwo {
  5. width: 120px;
  6. height: 40px;
  7. background: #333;
  8. margin: 20px 60px;
  9. border-radius: 50px;
  10. position: relative;
  11. }

這個樣式中間有一個黑色的條,滑塊會沿著它左右滑動,但是DIV元素已經使用了,所以我們需要用:before偽類創建一個新的元素。

CSS Code復制內容到剪貼板
  1. /**
  2. * Create the line for the circle to move across
  3. */
  4. .checkboxTwo:before {
  5. content: '';
  6. position: absolute;
  7. top: 19px;
  8. left: 14px;
  9. height: 2px;
  10. width: 90px;
  11. background: #111;
  12. }

和樣式一一樣,接下來我們為label寫CSS樣式,把它用作滑塊。

CSS Code復制內容到剪貼板
  1. /**
  2. * Create the circle to click
  3. */
  4. .checkboxTwo label {
  5. display: block;
  6. width: 22px;
  7. height: 22px;
  8. border-radius: 50%;
  9. -webkit-transition: all .5s ease;
  10. -moz-transition: all .5s ease;
  11. -o-transition: all .5s ease;
  12. -ms-transition: all .5s ease;
  13. transition: all .5s ease;
  14. cursor: pointer;
  15. position: absolute;
  16. top: 9px;
  17. z-index: 1;
  18. left: 12px;
  19. background: #ddd;
  20. }

我要實現和樣式一差不多的選中狀態,當選中時改變label的left和background屬性。

CSS Code復制內容到剪貼板
  1. /**
  2. * Create the click event for the checkbox
  3. */
  4. .checkboxTwo input[type=checkbox]:checked + label {
  5. left: 84px;
  6. background: #26ca28;
  7. }

樣式三
20151116113623446.png (264×126)

這個復選框的樣式比樣式二更復雜一些,它和前面的例子一樣會左右滑動,並且當改變選中和未選中的狀態時,滑塊滑動到另一側並且在原位置顯示對應的文本。

首先,我們寫Html代碼,這和前面是相同的。

XML/Html Code復制內容到剪貼板
  1. <section>
  2. <!-- Checbox Three -->
  3. <h3>Checkbox Three</h3>
  4. <div class="checkboxThree">
  5. <input type="checkbox" value="1" id="checkboxThreeInput" name="" />
  6. <label for="checkboxThreeInput"></label>
  7. </div>
  8. </section>

然後,我們用相同的方式把div作為滑塊,下面的代碼會創建一個黑色圓角的條帶,我們可以把滑塊和文本放到裡面。

CSS Code復制內容到剪貼板
  1. /**
  2. * Checkbox Three
  3. */
  4. .checkboxThree {
  5. width: 120px;
  6. height: 40px;
  7. background: #333;
  8. margin: 20px 60px;
  9. border-radius: 50px;
  10. position: relative;
  11. }

當滑塊處於未選中狀態時,滑塊會在左側,並且右邊顯示”OFF”,當點擊的時候,滑塊移動到右側,左側顯示”ON”。
但是元素數量不足以讓我們實現這些功能,所以我們要用:before和:after兩個偽類創建兩個元素,分別放置”ON”和”OFF”。

CSS Code復制內容到剪貼板
  1. /**
  2. * Create the text for the On position
  3. */
  4. .checkboxThree:before {
  5. content: 'On';
  6. position: absolute;
  7. top: 12px;
  8. left: 13px;
  9. height: 2px;
  10. color: #26ca28;
  11. font-size: 16px;
  12. }
  13. /**
  14. * Create the label for the off position
  15. */
  16. .checkboxThree:after {
  17. content: 'Off';
  18. position: absolute;
  19. top: 12px;
  20. left: 84px;
  21. height: 2px;
  22. color: #ddd;
  23. font-size: 16px;
  24. }

和前面一樣,我們來添加滑塊的樣式,當被點擊時它會移動到另一側,並且改變顏色。

CSS Code復制內容到剪貼板
  1. /**
  2. * Create the pill to click
  3. */
  4. .checkboxThree label {
  5. display: block;
  6. width: 52px;
  7. height: 22px;
  8. border-radius: 50px;
  9. -webkit-transition: all .5s ease;
  10. -moz-transition: all .5s ease;
  11. -o-transition: all .5s ease;
  12. -ms-transition: all .5s ease;
  13. transition: all .5s ease;
  14. cursor: pointer;
  15. position: absolute;
  16. top: 9px;
  17. z-index: 1;
  18. left: 12px;
  19. background: #ddd;
  20. }
  21. /**
  22. * Create the checkbox event for the label
  23. */
  24. .checkboxThree input[type=checkbox]:checked + label {
  25. left: 60px;
  26. background: #26ca28;
  27. }

樣式四
20151116113733887.png (249×125)

在這個樣式中,我們會創建兩個圓形,當點擊時改變裡面的圓形的顏色表示選中與未選中的狀態。
和前面一樣的Html代碼。

XML/Html Code復制內容到剪貼板
  1. <section>
  2. <!-- Checbox Four -->
  3. <h3>Checkbox Four</h3>
  4. <div class="checkboxFour">
  5. <input type="checkbox" value="1" id="checkboxFourInput" name="" />
  6. <label for="checkboxFourInput"></label>
  7. </div>
  8. </section>

接下來我們要為checkbox創建外面的圓形,使用CSS的border-radius屬性,並且設置為100%就可以創建一個正圓形。

CSS Code復制內容到剪貼板
  1. <section>
  2. <!-- Checbox Four -->
  3. <h3>Checkbox Four</h3>
  4. <div class="checkboxFour">
  5. <input type="checkbox" value="1" id="checkboxFourInput" name="" />
  6. <label for="checkboxFourInput"></label>
  7. </div>
  8. </section>

然後我們用label元素來創建一個小一點的圓形,它會根據checkbox狀態來改變顏色。

CSS Code復制內容到剪貼板
  1. /**
  2. * Create the checkbox button
  3. */
  4. .checkboxFour label {
  5. display: block;
  6. width: 30px;
  7. height: 30px;
  8. border-radius: 100px;
  9. -webkit-transition: all .5s ease;
  10. -moz-transition: all .5s ease;
  11. -o-transition: all .5s ease;
  12. -ms-transition: all .5s ease;
  13. transition: all .5s ease;
  14. cursor: pointer;
  15. position: absolute;
  16. top: 5px;
  17. left: 5px;
  18. z-index: 1;
  19. background: #333;
  20. -webkit-box-shadow:inset 0px 1px 3px rgba(0,0,0,0.5);
  21. -moz-box-shadow:inset 0px 1px 3px rgba(0,0,0,0.5);
  22. box-shadow:inset 0px 1px 3px rgba(0,0,0,0.5);
  23. }

當復選框被選中的時候,我們要改變內圈的背景顏色來表示選中狀態。

CSS Code復制內容到剪貼板
  1. /**
  2. * Create the checked state
  3. */
  4. .checkboxFour input[type=checkbox]:checked + label {
  5. background: #26ca28;
  6. }

樣式五
20151116113832981.png (239×109)

這個復選框的樣式有些不同,它看起來只是比浏覽器默認的checkbox樣式稍微好了些,但是不同的是我們可以根據自己的需要來定義它的樣式了。
首先還是一樣的Html代碼

XML/Html Code復制內容到剪貼板
  1. <section>
  2. <!-- Checbox Five -->
  3. <h3>Checkbox Five</h3>
  4. <div class="checkboxFive">
  5. <input type="checkbox" value="1" id="checkboxFiveInput" name="" />
  6. <label for="checkboxFiveInput"></label>
  7. </div>
  8. </section>

在前面的例子中,我們把div作為checkbox的滑動條帶或者外部的圓圈,但是這一次我們不需要了,可以使用div元素來設置復選框的區域。

CSS Code復制內容到剪貼板
  1. /**
  2. * Checkbox Five
  3. */
  4. .checkboxFive {
  5. width: 25px;
  6. margin: 20px 100px;
  7. position: relative;
  8. }

label標簽用於Click事件和我們要定義的復選框的方框樣式。

CSS Code復制內容到剪貼板
  1. /**
  2. * Create the box for the checkbox
  3. */
  4. .checkboxFive label {
  5. cursor: pointer;
  6. position: absolute;
  7. width: 25px;
  8. height: 25px;
  9. top: 0;
  10. left: 0;
  11. background: #eee;
  12. border:1px solid #ddd;
  13. }

接下來,我們要創建方框中的對勾,對於這一點,我們可以使用:after偽類創建一個新的元素,為了實現這個樣式,我們可以創建一個5px x 9px的長方形並給他加上邊框。這時候我們去掉上面和右邊的邊框之後,它會看起來像一個字母L。然後我們可以使用CSS的transform屬性讓它旋轉一下,這樣看起來就像是一個對勾。

CSS Code復制內容到剪貼板
  1. /**
  2. * Display the tick inside the checkbox
  3. */
  4. .checkboxFive label:after {
  5. opacity: 0.2;
  6. content: '';
  7. position: absolute;
  8. width: 9px;
  9. height: 5px;
  10. background: transparent;
  11. top: 6px;
  12. left: 7px;
  13. border: 3px solid #333;
  14. border-top: none;
  15. border-right: none;
  16. -webkit-transform: rotate(-45deg);
  17. -moz-transform: rotate(-45deg);
  18. -o-transform: rotate(-45deg);
  19. -ms-transform: rotate(-45deg);
  20. transform: rotate(-45deg);
  21. }

在上面的CSS中,我們已經設置它的透明度為0.2,所以你會看到的復選框有一個半透明的對勾。你可以在懸停的時候加深一點,在選中時,可以把設置為不透明。

CSS Code復制內容到剪貼板
  1. /**
  2. * Create the hover event of the tick
  3. */
  4. .checkboxFive label:hover::after {
  5. opacity: 0.5;
  6. }
  7. /**
  8. * Create the checkbox state for the tick
  9. */
  10. .checkboxFive input[type=checkbox]:checked + label:after {
  11. opacity: 1;
  12. }
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved