搜尋
首頁web前端css教學詳解CSS和HTML自訂checkbox效果

checkbox應該是比較常用的html功能了,不過瀏覽器自備的checkbox往往樣式不怎麼好看,而且不同瀏覽器效果也不一樣。出於美化和統一視覺效果的需求,checkbox的自訂就被提出來了。本文主要給大家分享CSS+HTML自訂checkbox效果,一起看看吧,希望能幫助大家。

實現想法

純css實作的主要手段是利用label標籤的模擬功能。 label的for屬性可以關聯一個特定的input元素,即使這個input本身不可被用戶可見,有個與它對應的label後,用戶可以直接透過和label標籤交互來取代原生的input——而這給我們的樣式模擬留下了空間。簡而言之就是

隱藏原生input,樣式定義的過程留給label (那為什麼不直接改變checkbox的樣式?因為checkbox作為瀏覽器預設元件,樣式變更上並沒有label那麼方便,很多屬性對checkbox都是不起作用的,例如background,而label在樣式上基本上和p一樣'任人宰割')
而在選擇事件上,由於css的“相鄰選擇符(E+F) 「的存在,讓我們可以直接利用html的預設checkbox,免去了js模擬選擇的麻煩。

demo

DEMO的部分CSS3屬性只寫了webkit前綴,所以建議用webkit核心的瀏覽器查看本頁

HTML程式碼:

<p>
    <!-- `input`的id必须有,这个是label进行元素匹配所必需的 -->
    <!-- 可以看到每个input的id和label的“for”属性对应同一字符串 -->
<input>
<label></label>
<input>
<label></label>
<input>
<label></label>
<input>
<label></label></p>

HTML建置完成,接下來是對應的css。

.wrap {
  width: 500px;
  background-color: #EEE;
  border: 2px solid #DEF;
}
/* 隐藏所有checkbox */
input[type='checkbox'] {
  display: none;
}
/* 对label进行模拟.背景图片随便拼凑的,不要吐槽品味*/
/*   transition效果是做个背景切换效果,这里单纯演示而已,实际上这个过渡不加更自然*/
label {
  display: inline-block;
  width: 60px;
  height: 60px;
  position: relative;
  background: url(//www.chitanda.me/images/blank.png);
  background-position: 0 0px;
  -webkit-transition: background 0.5s linear;
}
/*  利用相邻选择符和checkbox`:checked`的状态伪类来模拟默认选中效果(就是点击后那个勾号的效果)  */
/*如果这段代码注释,点击后将没有任何反馈给用户*/
/*因为label本身是没有点击后被选中的状态的,checkbox被隐藏后,这个状态只能手动模拟*/
input[type='checkbox']:checked+label {
  background-position: 0 -60px;
}

上面程式碼的效果如下所示,看起來好像也可以了。

不過仔細想想,似乎缺了點什麼:選項對應的提示文字

對css不了解的新人可能這時候第一反應就是在label後面用p標籤或span標籤來添加文字。不過這種方式都不太優雅。個人建議用css的::before和::after偽元素(::before和:before是一個東西。不過為了把「偽元素」和「偽類」區分出來,W3C建議的寫法是偽元素用::而偽類用:)
偽元素的具體內容這裡不多說,(其實是我也對它們的掌握就僅限於用用而已,對這個談不上理解,就不誤人子弟了)

/* 伪元素的生效很简单,定义`content`就好,其余的属性和普通p一样 */
label::after {
   content: attr(data-name);
   /*利用attr可以减少css代码量,data-name写在html部分的label属性里*/
  display: inline-block;
  position: relative;
  width: 120px;
  height: 60px;
  left: 100%;
  vertical-align: middle;
  margin: 10px;
}

當然既然可以用::after模擬label的文字,那也就可以用::before模擬label的checkbox樣式,這裡就不做解析了。

相關推薦:

純Css程式碼美化checkbox複選框、radios單選框和滑動按鈕簡單方法

jQuery操作CheckBox的方法實例詳解

html中關於checkBox選取樣式設定

以上是詳解CSS和HTML自訂checkbox效果的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
我們如何標記Google字體並創建Goofonts.com我們如何標記Google字體並創建Goofonts.comApr 12, 2025 pm 12:02 PM

Goofonts是由開發人員和設計師丈夫簽名的附帶項目,它們都是版式的忠實擁護者。我們一直在標記Google

永恆的Web開發文章永恆的Web開發文章Apr 12, 2025 am 11:44 AM

Pavithra Kodmad向人們詢問了他們認為是關於網絡開發的一些最永恆的文章的建議

與部分元素的交易與部分元素的交易Apr 12, 2025 am 11:39 AM

同一天發表了兩篇文章:

使用JavaScript API練習GraphQl查詢使用JavaScript API練習GraphQl查詢Apr 12, 2025 am 11:33 AM

學習如何構建GraphQL API可能具有挑戰性。但是您可以學習如何在10分鐘內使用GraphQL API!碰巧的是,我得到了完美的

組件級CMS組件級CMSApr 12, 2025 am 11:09 AM

當一個組件生活在數據查詢居住在附近的數據查詢的環境中時,視覺組件和

將類型設置在圓上...帶偏移路徑將類型設置在圓上...帶偏移路徑Apr 12, 2025 am 11:00 AM

這裡是Yuanchuan的一些合法CSS騙局。有此CSS屬性偏移路徑。曾幾何時,它被稱為Motion-Path,然後被更名。我

'恢復”在CSS中有什麼作用?'恢復”在CSS中有什麼作用?Apr 12, 2025 am 10:59 AM

Miriam Suzanne在Mozilla開發人員的視頻中解釋了該主題。

現代戀人現代戀人Apr 12, 2025 am 10:58 AM

我喜歡這樣的東西。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。