|
導(dǎo)讀網(wǎng)頁的本質(zhì)就是超級文本標(biāo)記語言,通過結(jié)合使用其他的Web技術(shù)(如:腳本語言、公共網(wǎng)關(guān)接口、組件等),可以創(chuàng)造出功能強大的網(wǎng)頁。因而,超級文本標(biāo)記語言是萬維網(wǎng)(Web)編程的基礎(chǔ),也就是說萬維網(wǎng)是建立... 網(wǎng)頁的本質(zhì)就是超級文本標(biāo)記語言,通過結(jié)合使用其他的Web技術(shù)(如:腳本語言、公共網(wǎng)關(guān)接口、組件等),可以創(chuàng)造出功能強大的網(wǎng)頁。因而,超級文本標(biāo)記語言是萬維網(wǎng)(Web)編程的基礎(chǔ),也就是說萬維網(wǎng)是建立在超文本基礎(chǔ)之上的。超級文本標(biāo)記語言之所以稱為超文本標(biāo)記語言,是因為文本中包含了所謂“超級鏈接”點。 本篇文章給大家介紹一下在css中:indeterminate選擇器有什么用,可以在哪些元素中使用。下面我們就來看具體的內(nèi)容。
:indeterminate選擇器簡單介紹 :indeterminate是一個CSS 偽類選擇器,是用于選擇處于不確定狀態(tài)的用戶界面元素的。 例如,radio和checkbox元素可以在選中狀態(tài)和未選中狀態(tài)之間切換,但有時處于不確定狀態(tài),既不選中也不取消選中。類似地,還有HTML5 <progress>標(biāo)簽,當(dāng)完成的百分比未知時,進度條(<progress>)可以處于不確定狀態(tài)。 因此,可以具體地說,:indeterminate偽類選擇器可以在以下元素中使用: 1、復(fù)選按鈕(<input type="checkbox">),其indeterminate屬性設(shè)置為true。 2、單選按鈕(<input type="radio">),在表單中擁有相同name值的單選按鈕組中未被選中時單選按鈕。 3、沒有value屬性的進度條元素(<progress>標(biāo)簽)。progress標(biāo)簽元素是一個HTML5元素,用于表示任務(wù)的完成進度。 可以說元素的不確定狀態(tài)是一種視覺狀態(tài),下面是復(fù)選框的三種狀態(tài):已選中,未選中和不確定:
注:元素的不確定狀態(tài)只能通過JavaScript來動態(tài)設(shè)置。上面提到的indeterminate屬性只能和JavaScript一起應(yīng)用,這意味著不能像下面這樣通過HTML將元素的狀態(tài)設(shè)置為不確定: <input type="checkbox" indeterminate> <!-- 如果我們通過HTML添加它,則不起作用 --> 要將元素設(shè)置為不確定狀態(tài),您只能通過JavaScript執(zhí)行此操作。例如,如果頁面中有一組復(fù)選框,則以下行將選擇第一行并將其狀態(tài)更改為不確定狀態(tài): document.getElementsByTagName("input")[0].indeterminate = true;示例:嵌套的復(fù)選框 將復(fù)選框的狀態(tài)(和樣式)設(shè)置為不確定可能有用的一個用例是,當(dāng)我們嵌套復(fù)選框時,讓一個復(fù)選框具有了子復(fù)選框。通常是在提供多種選擇的用戶界面中看到這種情況,并且某些選項具有“子選項”。 通常,設(shè)置“父”復(fù)選框,以便它可用于切換其所有子復(fù)選框的樣式 - 檢查它將檢查所有子項,取消選中它將取消選中所有子項。取消選中它將允許用戶檢查子復(fù)選框中的一些選項,同時保留其他選項未選中。 因此,使用此概念,可以檢查復(fù)選框是否選中了所有后代復(fù)選框,如果未選中所有后代復(fù)選框,則該“父”復(fù)選框的狀態(tài)為不確定,例如: 一組嵌套的復(fù)選框中,當(dāng)我們選中一個子選項時,“父”復(fù)選框的狀態(tài)為“不確定”
當(dāng)我們選擇2個子選項時,“父”復(fù)選框的狀態(tài)還是為“不確定”
只有,當(dāng)所有子選項都被選中是,父”復(fù)選框的狀態(tài)才會為“選中”
嵌套的復(fù)選框的代碼: 如果復(fù)選框的標(biāo)簽處于不確定狀態(tài),則父復(fù)選框標(biāo)簽的顏色將變?yōu)閐eepPink。 HTML代碼: <div class="container">
<ul>
<li>
<input type="checkbox" id="option"><label for="option"> 選擇喜歡的水果</label>
<ul>
<li><label><input type="checkbox" class="subOption"> 蘋果、香蕉、橘子</label></li>
<li><label><input type="checkbox" class="subOption"> 柚子、橙子、西瓜</label></li>
<li><label><input type="checkbox" class="subOption"> 芒果、火龍果、哈密瓜</label></li>
</ul>
</li>
</ul>
</div>css代碼: ul {
list-style: none;
}
.container {
margin: 40px auto;
max-width: 700px;
}
li {
margin-top: 1em;
}
label {
font-weight: bold;
}
input[type="checkbox"]:indeterminate + label {
color: deepPink;
}js代碼: var checkboxes = document.querySelectorAll('input.subOption'),
checkall = document.getElementById('option');
for(var i=0; i<checkboxes.length; i++) {
checkboxes[i].onclick = function() {
var checkedCount = document.querySelectorAll('input.subOption:checked').length;
checkall.checked = checkedCount > 0;
checkall.indeterminate = checkedCount > 0 && checkedCount < checkboxes.length;
}
}
checkall.onclick = function() {
for(var i=0; i<checkboxes.length; i++) {
checkboxes[i].checked = this.checked;
}
}動態(tài)效果圖:
總結(jié):以上就是本篇文的全部內(nèi)容,希望能對大家的學(xué)習(xí)有所幫助。 以上就是css如何使用:indeterminate選擇器的詳細內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章! 網(wǎng)站建設(shè)是一個廣義的術(shù)語,涵蓋了許多不同的技能和學(xué)科中所使用的生產(chǎn)和維護的網(wǎng)站。 |
溫馨提示:喜歡本站的話,請收藏一下本站!