多選與單選(Checks & radios)

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

      方法

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

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

      復選框

      <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>

      不確定

      當通過JavaScript手動設置時,復選框可以利用不確定偽類 :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屬性,相關的label將自動設置為與較淺顏色匹配的樣式,以幫助指示輸入的狀態。

      <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屬性,相關的label將自動設置為與較淺顏色匹配的樣式,以幫助指示輸入的狀態。

      <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>

      開關

      開關具有自定義復選框的標記,但使用.form-switch類來呈現切換開關。開關還支持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>

      默認 (疊放)

      默認情況下,任何數量的直接同級復選框和單選按鈕都將垂直堆疊,并使用 .form-check適當隔開。

      <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>

      內聯

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

      <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>

      無標簽

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

      <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樣式而不是

      復選切換按鈕

      <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>
      從外觀上看,這些復選框切換按鈕與按鈕插件切換按鈕相同。然而,輔助技術傳達的方式不同:屏幕閱讀器會將復選框切換宣布為“選中”/“未選中”(因為外觀如此,但它們本質上仍然是復選框),而按鈕插件切換按鈕將宣布為“按鈕”/“按下按鈕”。這兩種方法之間的選擇將取決于您正在創建的切換類型,以及當作為復選框或實際按鈕發布時,切換對用戶是否有意義。

      單選切換按鈕

      <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一区二区| 亚洲人AV永久一区二区三区久久| 久久精品国产一区二区三区| 91视频一区二区三区| 乱中年女人伦av一区二区| 中文字幕AV一区二区三区| 天堂国产一区二区三区| 无码8090精品久久一区| 日本无码一区二区三区白峰美| 99精品一区二区免费视频| 久久99精品国产一区二区三区| 日本美女一区二区三区| 香蕉久久ac一区二区三区| 日韩国产精品无码一区二区三区| 一区二区三区四区精品| 福利一区二区在线| 加勒比精品久久一区二区三区| 国产午夜精品片一区二区三区| 亚洲福利一区二区精品秒拍| 无码人妻品一区二区三区精99 | 精品乱子伦一区二区三区高清免费播放| 一区二区三区四区免费视频| 久久久91精品国产一区二区三区 | 丰满人妻一区二区三区视频53| 国产一区二区三区手机在线观看| 蜜桃传媒一区二区亚洲AV| 国产自产对白一区| 日韩三级一区二区| 国产免费一区二区三区VR| 色综合视频一区二区三区| 国产激情一区二区三区成人91| 国产一区二区精品尤物| 精品少妇一区二区三区视频| 亚洲福利视频一区| 亚洲av无一区二区三区| 精品国产一区二区二三区在线观看| 国产一区二区免费在线| 国产成人综合精品一区| 秋霞无码一区二区| 国精产品一区一区三区MBA下载 |