溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

indeterminate選擇器怎么用

發(fā)布時(shí)間:2022-03-23 10:32:04 來源:億速云 閱讀:247 作者:iii 欄目:web開發(fā)

今天小編給大家分享一下indeterminate選擇器怎么用的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

  :indeterminate選擇器簡(jiǎn)單介紹

  :indeterminate是一個(gè)CSS偽類選擇器,是用于選擇處于不確定狀態(tài)的用戶界面元素的。

  例如,radio和checkbox元素可以在選中狀態(tài)和未選中狀態(tài)之間切換,但有時(shí)處于不確定狀態(tài),既不選中也不取消選中。類似地,還有HTML5<progress>標(biāo)簽,當(dāng)完成的百分比未知時(shí),進(jìn)度條(<progress>)可以處于不確定狀態(tài)。

  因此,可以具體地說,:indeterminate偽類選擇器可以在以下元素中使用:

  1、復(fù)選按鈕(<inputtype="checkbox">),其indeterminate屬性設(shè)置為true。

  2、單選按鈕(<inputtype="radio">),在表單中擁有相同name值的單選按鈕組中未被選中時(shí)單選按鈕。

  3、沒有value屬性的進(jìn)度條元素(<progress>標(biāo)簽)。progress標(biāo)簽元素是一個(gè)HTML5元素,用于表示任務(wù)的完成進(jìn)度。

  可以說元素的不確定狀態(tài)是一種視覺狀態(tài),下面是復(fù)選框的三種狀態(tài):已選中,未選中和不確定:

  2.jpg

  注:元素的不確定狀態(tài)只能通過JavaScript來動(dòng)態(tài)設(shè)置。上面提到的indeterminate屬性只能和JavaScript一起應(yīng)用,這意味著不能像下面這樣通過HTML將元素的狀態(tài)設(shè)置為不確定:

  <inputtype="checkbox"indeterminate><!--如果我們通過HTML添加它,則不起作用-->

  要將元素設(shè)置為不確定狀態(tài),您只能通過JavaScript執(zhí)行此操作。例如,如果頁面中有一組復(fù)選框,則以下行將選擇第一行并將其狀態(tài)更改為不確定狀態(tài):

  document.getElementsByTagName("input")[0].indeterminate=true;

  示例:嵌套的復(fù)選框

  將復(fù)選框的狀態(tài)(和樣式)設(shè)置為不確定可能有用的一個(gè)用例是,當(dāng)我們嵌套復(fù)選框時(shí),讓一個(gè)復(fù)選框具有了子復(fù)選框。通常是在提供多種選擇的用戶界面中看到這種情況,并且某些選項(xiàng)具有“子選項(xiàng)”。

  通常,設(shè)置“父”復(fù)選框,以便它可用于切換其所有子復(fù)選框的樣式-檢查它將檢查所有子項(xiàng),取消選中它將取消選中所有子項(xiàng)。取消選中它將允許用戶檢查子復(fù)選框中的一些選項(xiàng),同時(shí)保留其他選項(xiàng)未選中。

  因此,使用此概念,可以檢查復(fù)選框是否選中了所有后代復(fù)選框,如果未選中所有后代復(fù)選框,則該“父”復(fù)選框的狀態(tài)為不確定,例如:

  一組嵌套的復(fù)選框中,當(dāng)我們選中一個(gè)子選項(xiàng)時(shí),“父”復(fù)選框的狀態(tài)為“不確定”

  3.jpg

  當(dāng)我們選擇2個(gè)子選項(xiàng)時(shí),“父”復(fù)選框的狀態(tài)還是為“不確定”

  4.jpg

  只有,當(dāng)所有子選項(xiàng)都被選中是,父”復(fù)選框的狀態(tài)才會(huì)為“選中”

  5.jpg

  嵌套的復(fù)選框的代碼:

  如果復(fù)選框的標(biāo)簽處于不確定狀態(tài),則父復(fù)選框標(biāo)簽的顏色將變?yōu)閐eepPink。

  HTML代碼:

  <divclass="container">

  <ul>

  <li>

  <inputtype="checkbox"id="option"><labelfor="option">選擇喜歡的水果</label>

  <ul>

  <li><label><inputtype="checkbox"class="subOption">蘋果、香蕉、橘子</label></li>

  <li><label><inputtype="checkbox"class="subOption">柚子、橙子、西瓜</label></li>

  <li><label><inputtype="checkbox"class="subOption">芒果、火龍果、哈密瓜</label></li>

  </ul>

  </li>

  </ul>

  </div>

  css代碼:

  ul{

  list-style:none;

  }

  .container{

  margin:40pxauto;

  max-width:700px;

  }

  li{

  margin-top:1em;

  }

  label{

  font-weight:bold;

  }

  input[type="checkbox"]:indeterminate+label{

  color:deepPink;

  }

  js代碼:

  varcheckboxes=document.querySelectorAll('input.subOption'),

  checkall=document.getElementById('option');

  for(vari=0;i<checkboxes.length;i++){

  checkboxes[i].onclick=function(){

  varcheckedCount=document.querySelectorAll('input.subOption:checked').length;

  checkall.checked=checkedCount>0;

  checkall.indeterminate=checkedCount>0&&checkedCount<checkboxes.length;

  }

  }

  checkall.onclick=function(){

  for(vari=0;i<checkboxes.length;i++){

  checkboxes[i].checked=this.checked;

  }

  }

以上就是“indeterminate選擇器怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI