このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
CSS :read-write 擬似クラス
Baseline
広く利用可能
この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2020年7月以降、すべてのブラウザーで利用可能です。
:read-write は CSS の擬似クラスで、ユーザーが編集できる要素 (input や textarea など) を表します。
試してみましょう
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> |
ブラウザーの互換性
ブラウザー互換性一覧表を表示するには、JavaScript を有効にしてください。
関連情報
:read-only- HTML の
contenteditable属性