:disabled
        
        
          
                Baseline
                
                  Widely available
                
                
              
        
        
        
          
                
              
                
              
                
              
        
        
      
      This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
:disabled は CSS の擬似クラスで、無効な要素を表します。無効な要素とは、アクティブ化(選択、クリック、入力など)したりフォーカスを得たりすることができないものです。要素には有効な状態、つまりアクティブ化したりフォーカスを得たりすることができる状態もあります。
試してみましょう
label {
  display: block;
  margin-top: 1em;
}
*:disabled {
  background-color: dimgrey;
  color: linen;
  opacity: 1;
}
<form>
  <label for="name">名前:</label>
  <input id="name" name="name" type="text" />
  <label for="emp">雇用中:</label>
  <select id="emp" name="emp" disabled>
    <option>No</option>
    <option>Yes</option>
  </select>
  <label for="empDate">雇用日:</label>
  <input id="empDate" name="empDate" type="date" disabled />
  <label for="resume">履歴書:</label>
  <input id="resume" name="resume" type="file" />
</form>
構文
css
:disabled {
  /* ... */
}
例
この例は基本的な送り先フォームを表示します。 JavaScript の change イベントを使用して、ユーザーが請求先欄を有効化/無効化できるようにします。
HTML
html
<form action="#">
  <fieldset id="shipping">
    <legend>送り先</legend>
    <input type="text" placeholder="名前" />
    <input type="text" placeholder="住所" />
    <input type="text" placeholder="郵便番号" />
  </fieldset>
  <br />
  <fieldset id="billing">
    <legend>請求先</legend>
    <label for="billing_is_shipping">送り先と同じ:</label>
    <input type="checkbox" id="billing-checkbox" checked />
    <br />
    <input type="text" placeholder="名前" disabled />
    <input type="text" placeholder="住所" disabled />
    <input type="text" placeholder="郵便番号" disabled />
  </fieldset>
</form>
CSS
css
input[type="text"]:disabled {
  background: #ccc;
}
JavaScript
チェックボックスがクリックされたときに、無効になっている入力フィールドを切り替えます。
js
const checkbox = document.querySelector("#billing-checkbox");
const billingItems = document.querySelectorAll('#billing input[type="text"]');
checkbox.addEventListener("change", () => {
  billingItems.forEach((item) => {
    item.disabled = !item.disabled;
  });
});
結果
チェックボックスをオンまたはオフにすると、請求先フィールドのスタイル設定を変更できます。
仕様書
| Specification | 
|---|
| HTML> # selector-disabled>  | 
            
| Selectors Level 4> # disabled-pseudo>  | 
            
ブラウザーの互換性
Loading…