1. 開発者向けのウェブ技術
  2. CSS
  3. リファレンス
  4. セレクター
  5. :read-write

このページはコミュニティーの尽力で英語から翻訳されました。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>(配送指示)を強調表示することができます。

body {
 font-family: "Josefin Sans", sans-serif;
 margin: 10px auto;
}
legend {
 color: white;
 background: black;
 padding: 5px 10px;
}
fieldset > div {
 margin-bottom: 10px;
 display: flex;
 justify-content: space-between;
}
button,
label,
textarea {
 display: block;
 font-family: inherit;
 font-size: 100%;
 margin: 0;
 box-sizing: border-box;
 padding: 5px;
 height: 30px;
}
textarea {
 width: 50%;
}
textarea {
 height: 70px;
 resize: none;
}
label {
 width: 40%;
}
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

ブラウザーの互換性

関連情報

MDN の改良に協力

協力方法を知る

このページは MDN の貢献者によって に最終更新されました。

AltStyle によって変換されたページ (->オリジナル) /