このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

CSS :read-write 擬似クラス

Baseline 広く利用可能

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2020年7月以降、すべてのブラウザーで利用可能です。

:read-writeCSS擬似クラスで、ユーザーが編集できる要素 (inputtextarea など) を表します。

試してみましょう

label,
input[type="submit"] {
  display: block;
  margin-top: 1em;
}

*:read-write {
  background-color: ivory;
  border: 2px solid darkorange;
  border-radius: 5px;
}
<p>詳細を記入してください:</p>

<form>
  <label for="email">メールアドレス:</label>
  <input id="email" name="email" type="email" value="test@example.com" />

  <label for="note">あなた自身についての一言メモ:</label>
  <textarea id="note" name="note">恥ずかしがるな</textarea>

  <label for="pic">あなたの写真:</label>
  <input id="pic" name="pic" type="file" />

  <input type="submit" value="Submit form" />
</form>

構文

css
:read-write {
  /* ... */
}

読み取り専用のコントロールを使用したフォームの詳細の確認

readonly フォームコントロールは、ユーザーに以前入力した情報を確認してもらい、その情報を読み書き可能なコントロールに入力された新しいデータとともに送信したい場合に使用することができます。 下記例では、:read-only 擬似クラスを使用して、<textarea>(ユーザーの住所)を通常の段落のように表示しています。:read-write 擬似クラスを使用すると、編集可能な <textarea>(配送指示)を強調表示することができます。

css
textarea:read-only {
  border: 0;
}

textarea:read-write {
  box-shadow: inset 1px 1px 3px #cccccc;
  border-radius: 5px;
}
html
<form>
  <fieldset>
    <legend>詳細を確認</legend>
    <div>
      <label for="address">住所:</label>
      <textarea id="address" name="address" readonly>
123 Choco Mountain,
Awesome Ridge,
CA</textarea>
    </div>
    <div>
      <label for="instructions">配達指示</label>
      <textarea id="instructions" name="instructions"></textarea>
    </div>
  </fieldset>
  <button type="submit">確認</button>
</form>

フォーム以外の読み書き用コントロールのスタイル付け

このセレクターは <input>/<textarea> 要素に readonly が設定されているものだけを選択するのではありません。ユーザーが編集できるあらゆる要素、例えば <p> 要素に contenteditable が設定されたものを選択します。

html
<p contenteditable>この段落は編集可能です。読み書き可です。</p>

<p>この段落は編集できません。読み取り専用です。</p>
css
body {
  font-family: sans-serif;
}

p {
  font-size: 150%;
  padding: 5px;
  border-radius: 5px;
}

p:read-only {
  background-color: red;
  color: white;
}

p:read-write {
  background-color: lime;
}

仕様書

仕様書
HTML
# selector-read-write
Selectors Level 4
# read-write-pseudo

ブラウザーの互換性

関連情報