多選與單選(Checks & radios)

      使用我們重構(gòu)過的勾選組件,建立跨瀏覽器、跨設(shè)備皆一致的復(fù)選框(checkbox)及單選按鈕(radio)。

      方法

      瀏覽器默認(rèn)的復(fù)選框和單選按鈕被.form-check所取代,這是一系列用于兩種輸入類型的類,它們改進(jìn)了HTML元素的布局和行為,提供了更好的自定義和跨瀏覽器一致性。復(fù)選框用于在列表中選擇一個或多個選項(xiàng),而單選按鈕用于從多個選項(xiàng)中選擇一個選項(xiàng)。

      在結(jié)構(gòu)上,我們的input和label是兄弟元素,而不是label中的input。由于必須指定id和屬性才能將input和label關(guān)聯(lián)起來,因此這會稍微詳細(xì)一些。我們對所有input狀態(tài)使用同級選擇器(~),例如:checked或:disabled。當(dāng)與.form-check-label類結(jié)合使用時,我們可以根據(jù)input的狀態(tài)輕松地為每個項(xiàng)設(shè)置文本樣式。

      復(fù)選框

      <div class="form-check">
      <input class="form-check-input" type="checkbox" value="" id="flexCheckDefault">
      <label class="form-check-label" for="flexCheckDefault">
      Default checkbox
      </label>
      </div>
      <div class="form-check">
      <input class="form-check-input" type="checkbox" value="" id="flexCheckChecked" checked>
      <label class="form-check-label" for="flexCheckChecked">
      Checked checkbox
      </label>
      </div>

      不確定

      當(dāng)通過JavaScript手動設(shè)置時,復(fù)選框可以利用不確定偽類 :indeterminate(沒有可用的HTML屬性來指定它)。

      <div class="form-check">
      <input class="form-check-input" type="checkbox" value="" id="flexCheckIndeterminate">
      <label class="form-check-label" for="flexCheckIndeterminate">
      Indeterminate checkbox
      </label>
      </div>

      禁用

      添加disabled屬性,相關(guān)的label將自動設(shè)置為與較淺顏色匹配的樣式,以幫助指示輸入的狀態(tài)。

      <div class="form-check">
      <input class="form-check-input" type="checkbox" value="" id="flexCheckDisabled" disabled>
      <label class="form-check-label" for="flexCheckDisabled">
      Disabled checkbox
      </label>
      </div>
      <div class="form-check">
      <input class="form-check-input" type="checkbox" value="" id="flexCheckCheckedDisabled" checked disabled>
      <label class="form-check-label" for="flexCheckCheckedDisabled">
      Disabled checked checkbox
      </label>
      </div>

      單選按鈕

      <div class="form-check">
      <input class="form-check-input" type="radio" name="flexRadioDefault" id="flexRadioDefault1">
      <label class="form-check-label" for="flexRadioDefault1">
      Default radio
      </label>
      </div>
      <div class="form-check">
      <input class="form-check-input" type="radio" name="flexRadioDefault" id="flexRadioDefault2" checked>
      <label class="form-check-label" for="flexRadioDefault2">
      Default checked radio
      </label>
      </div>

      禁用

      添加disabled屬性,相關(guān)的label將自動設(shè)置為與較淺顏色匹配的樣式,以幫助指示輸入的狀態(tài)。

      <div class="form-check">
      <input class="form-check-input" type="radio" name="flexRadioDisabled" id="flexRadioDisabled" disabled>
      <label class="form-check-label" for="flexRadioDisabled">
      Disabled radio
      </label>
      </div>
      <div class="form-check">
      <input class="form-check-input" type="radio" name="flexRadioDisabled" id="flexRadioCheckedDisabled" checked disabled>
      <label class="form-check-label" for="flexRadioCheckedDisabled">
      Disabled checked radio
      </label>
      </div>

      開關(guān)

      開關(guān)具有自定義復(fù)選框的標(biāo)記,但使用.form-switch類來呈現(xiàn)切換開關(guān)。開關(guān)還支持disabled屬性。

      <div class="form-check form-switch">
      <input class="form-check-input" type="checkbox" id="flexSwitchCheckDefault">
      <label class="form-check-label" for="flexSwitchCheckDefault">Default switch checkbox input</label>
      </div>
      <div class="form-check form-switch">
      <input class="form-check-input" type="checkbox" id="flexSwitchCheckChecked" checked>
      <label class="form-check-label" for="flexSwitchCheckChecked">Checked switch checkbox input</label>
      </div>
      <div class="form-check form-switch">
      <input class="form-check-input" type="checkbox" id="flexSwitchCheckDisabled" disabled>
      <label class="form-check-label" for="flexSwitchCheckDisabled">Disabled switch checkbox input</label>
      </div>
      <div class="form-check form-switch">
      <input class="form-check-input" type="checkbox" id="flexSwitchCheckCheckedDisabled" checked disabled>
      <label class="form-check-label" for="flexSwitchCheckCheckedDisabled">Disabled checked switch checkbox input</label>
      </div>

      默認(rèn) (疊放)

      默認(rèn)情況下,任何數(shù)量的直接同級復(fù)選框和單選按鈕都將垂直堆疊,并使用 .form-check適當(dāng)隔開。

      <div class="form-check">
      <input class="form-check-input" type="checkbox" value="" id="defaultCheck1">
      <label class="form-check-label" for="defaultCheck1">
      Default checkbox
      </label>
      </div>
      <div class="form-check">
      <input class="form-check-input" type="checkbox" value="" id="defaultCheck2" disabled>
      <label class="form-check-label" for="defaultCheck2">
      Disabled checkbox
      </label>
      </div>
      <div class="form-check">
      <input class="form-check-input" type="radio" name="exampleRadios" id="exampleRadios1" value="option1" checked>
      <label class="form-check-label" for="exampleRadios1">
      Default radio
      </label>
      </div>
      <div class="form-check">
      <input class="form-check-input" type="radio" name="exampleRadios" id="exampleRadios2" value="option2">
      <label class="form-check-label" for="exampleRadios2">
      Second default radio
      </label>
      </div>
      <div class="form-check">
      <input class="form-check-input" type="radio" name="exampleRadios" id="exampleRadios3" value="option3" disabled>
      <label class="form-check-label" for="exampleRadios3">
      Disabled radio
      </label>
      </div>

      內(nèi)聯(lián)

      通過將.form-check-inline添加到.form-check,將復(fù)選框或單選框在同一水平行上分組顯示。

      <div class="form-check form-check-inline">
      <input class="form-check-input" type="checkbox" id="inlineCheckbox1" value="option1">
      <label class="form-check-label" for="inlineCheckbox1">1</label>
      </div>
      <div class="form-check form-check-inline">
      <input class="form-check-input" type="checkbox" id="inlineCheckbox2" value="option2">
      <label class="form-check-label" for="inlineCheckbox2">2</label>
      </div>
      <div class="form-check form-check-inline">
      <input class="form-check-input" type="checkbox" id="inlineCheckbox3" value="option3" disabled>
      <label class="form-check-label" for="inlineCheckbox3">3 (disabled)</label>
      </div>
      <div class="form-check form-check-inline">
      <input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio1" value="option1">
      <label class="form-check-label" for="inlineRadio1">1</label>
      </div>
      <div class="form-check form-check-inline">
      <input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio2" value="option2">
      <label class="form-check-label" for="inlineRadio2">2</label>
      </div>
      <div class="form-check form-check-inline">
      <input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio3" value="option3" disabled>
      <label class="form-check-label" for="inlineRadio3">3 (disabled)</label>
      </div>

      無標(biāo)簽

      對于沒有標(biāo)簽文本的復(fù)選框和收音機(jī),省略wrapping.form復(fù)選框。記住,仍然要為輔助技術(shù)提供某種形式的可訪問名稱(例如,使用aria-label標(biāo)簽)。有關(guān)詳細(xì)信息,請參見表單概述輔助功能部分。

      <div>
      <input class="form-check-input" type="checkbox" id="checkboxNoLabel" value="" aria-label="...">
      </div>
      
      <div>
      <input class="form-check-input" type="radio" name="radioNoLabel" id="radioNoLabel1" value="" aria-label="...">
      </div>

      切換按鈕

      通過使用.btn樣式而不是

      復(fù)選切換按鈕

      <input type="checkbox" class="btn-check" id="btn-check" autocomplete="off">
      <label class="btn btn-primary" for="btn-check">Single toggle</label>
      <input type="checkbox" class="btn-check" id="btn-check-2" checked autocomplete="off">
      <label class="btn btn-primary" for="btn-check-2">Checked</label>
      <input type="checkbox" class="btn-check" id="btn-check-3" autocomplete="off" disabled>
      <label class="btn btn-primary" for="btn-check-3">Disabled</label>
      從外觀上看,這些復(fù)選框切換按鈕與按鈕插件切換按鈕相同。然而,輔助技術(shù)傳達(dá)的方式不同:屏幕閱讀器會將復(fù)選框切換宣布為“選中”/“未選中”(因?yàn)橥庥^如此,但它們本質(zhì)上仍然是復(fù)選框),而按鈕插件切換按鈕將宣布為“按鈕”/“按下按鈕”。這兩種方法之間的選擇將取決于您正在創(chuàng)建的切換類型,以及當(dāng)作為復(fù)選框或?qū)嶋H按鈕發(fā)布時,切換對用戶是否有意義。

      單選切換按鈕

      <input type="radio" class="btn-check" name="options" id="option1" autocomplete="off" checked>
      <label class="btn btn-secondary" for="option1">Checked</label>
      
      <input type="radio" class="btn-check" name="options" id="option2" autocomplete="off">
      <label class="btn btn-secondary" for="option2">Radio</label>
      
      <input type="radio" class="btn-check" name="options" id="option3" autocomplete="off" disabled>
      <label class="btn btn-secondary" for="option3">Disabled</label>
      
      <input type="radio" class="btn-check" name="options" id="option4" autocomplete="off">
      <label class="btn btn-secondary" for="option4">Radio</label>

      輪廓樣式

      支持.btn的不同變量,例如各種outline樣式是被支持的。



      <input type="checkbox" class="btn-check" id="btn-check-outlined" autocomplete="off">
      <label class="btn btn-outline-primary" for="btn-check-outlined">Single toggle</label><br>
      
      <input type="checkbox" class="btn-check" id="btn-check-2-outlined" checked autocomplete="off">
      <label class="btn btn-outline-secondary" for="btn-check-2-outlined">Checked</label><br>
      
      <input type="radio" class="btn-check" name="options-outlined" id="success-outlined" autocomplete="off" checked>
      <label class="btn btn-outline-success" for="success-outlined">Checked success radio</label>
      
      <input type="radio" class="btn-check" name="options-outlined" id="danger-outlined" autocomplete="off">
      <label class="btn btn-outline-danger" for="danger-outlined">Danger radio</label>

      Sass

      Variables

      $form-check-input-width:                  1em;
      $form-check-min-height:                   $font-size-base * $line-height-base;
      $form-check-padding-start:                $form-check-input-width + .5em;
      $form-check-margin-bottom:                .125rem;
      $form-check-label-color:                  null;
      $form-check-label-cursor:                 null;
      $form-check-transition:                   null;
      
      $form-check-input-active-filter:          brightness(90%);
      
      $form-check-input-bg:                     $input-bg;
      $form-check-input-border:                 1px solid rgba(0, 0, 0, .25);
      $form-check-input-border-radius:          .25em;
      $form-check-radio-border-radius:          50%;
      $form-check-input-focus-border:           $input-focus-border-color;
      $form-check-input-focus-box-shadow:       $input-btn-focus-box-shadow;
      
      $form-check-input-checked-color:          $component-active-color;
      $form-check-input-checked-bg-color:       $component-active-bg;
      $form-check-input-checked-border-color:   $form-check-input-checked-bg-color;
      $form-check-input-checked-bg-image:       url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path fill='none' stroke='#{$form-check-input-checked-color}' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/></svg>");
      $form-check-radio-checked-bg-image:       url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='2' fill='#{$form-check-input-checked-color}'/></svg>");
      
      $form-check-input-indeterminate-color:          $component-active-color;
      $form-check-input-indeterminate-bg-color:       $component-active-bg;
      $form-check-input-indeterminate-border-color:   $form-check-input-indeterminate-bg-color;
      $form-check-input-indeterminate-bg-image:       url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path fill='none' stroke='#{$form-check-input-indeterminate-color}' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/></svg>");
      
      $form-check-input-disabled-opacity:        .5;
      $form-check-label-disabled-opacity:        $form-check-input-disabled-opacity;
      $form-check-btn-check-disabled-opacity:    $btn-disabled-opacity;
      
      $form-check-inline-margin-end:    1rem;
      
      返回頂部
      主站蜘蛛池模板: 日韩精品一区二区三区四区| 无码人妻精品一区二区蜜桃 | 日韩亚洲AV无码一区二区不卡| 2021国产精品一区二区在线| 日本一区二区三区在线视频 | 国产成人片视频一区二区| 精品一区二区三区中文字幕| av无码人妻一区二区三区牛牛| 91在线精品亚洲一区二区| 国产自产在线视频一区| 日韩人妻精品无码一区二区三区 | 国产精品亚洲高清一区二区 | 国产香蕉一区二区精品视频| 国产91精品一区二区麻豆网站| 国产伦精品一区二区三区免费迷| 久久国产高清一区二区三区| 亚洲AV无码一区二区一二区| 亚洲老妈激情一区二区三区| 国精产品一区一区三区有限在线| 精品国产一区二区三区在线观看| 久久精品成人一区二区三区| 夜精品a一区二区三区| 91久久精一区二区三区大全| 2022年亚洲午夜一区二区福利 | 国产成人精品一区二区三区无码| 无码av中文一区二区三区桃花岛| 日韩在线视频一区二区三区| 国产一区二区三区精品久久呦| 无码人妻久久久一区二区三区 | 国产精品无码一区二区在线| 国产一区二区内射最近更新| 日本一区二区三区在线观看| 国产综合视频在线观看一区 | 成人精品一区二区激情| 无码人妻精品一区二区三18禁| 久久精品国产一区二区| 天堂成人一区二区三区| 视频在线观看一区| 成人丝袜激情一区二区 | 一区二区3区免费视频| 亚洲欧洲精品一区二区三区|