:read-only CSS-Pseudoklasse
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2020 browserübergreifend verfügbar.
Die :read-only CSS-Pseudoklasse wählt Elemente aus (wie bestimmte <input>-Typen und <textarea>), die vom Benutzer nicht bearbeitet werden können. Elemente, bei denen das HTML-Attribut readonly keine Wirkung hat (wie <input type="radio">, <input type="checkbox"> und alle anderen Nicht-Formularelemente), werden ebenfalls von der :read-only-Pseudoklasse ausgewählt. Tatsächlich stimmt :read-only mit allem überein, was :read-write nicht übereinstimmt, was es äquivalent zu :not(:read-write) macht.
Probieren Sie es aus
label,
input[type="submit"] {
display: block;
margin-top: 1em;
}
*:read-only {
font-weight: bold;
color: indigo;
}
<p>Please fill your details:</p>
<form>
<label for="email">Email Address:</label>
<input id="email" name="email" type="email" value="test@example.com" />
<label for="note">Short note about yourself:</label>
<textarea id="note" name="note">Don't be shy</textarea>
<label for="pic">Your picture:</label>
<input id="pic" name="pic" type="file" />
<input type="submit" value="Submit form" />
</form>
Syntax
:read-only {
/* ... */
}
Beispiele
>Formularinformationen mit schreibgeschützten oder schreibbaren Steuerelementen bestätigen
Ein Anwendungsbeispiel für schreibgeschützte Formularelemente ist es, dem Benutzer zu ermöglichen, Informationen zu überprüfen und zu bestätigen, die er in einem früheren Formular eingegeben hat (z. B. Versanddetails), während er dennoch in der Lage ist, die Informationen zusammen mit dem Rest des Formulars zu senden. Genau das tun wir im folgenden Beispiel.
Die :read-only-Pseudoklasse wird verwendet, um das gesamte Styling zu entfernen, das die Eingabefelder wie anklickbare Felder aussehen lässt, sodass sie mehr wie schreibgeschützte Absätze aussehen. Die :read-write-Pseudoklasse wird hingegen verwendet, um dem bearbeitbaren <textarea> ein schöneres Styling zu geben.
input:read-only,
textarea:read-only {
border: 0;
box-shadow: none;
background-color: #dddddd;
}
textarea:read-write {
outline: 1px dashed red;
outline-offset: 2px;
border-radius: 5px;
}
Stil von schreibgeschützten Nicht-Formular-Steuerelementen
Dieser Selektor wählt nicht nur <input>/<textarea>-Elemente aus – er wählt jedes Element aus, das vom Benutzer nicht bearbeitet werden kann.
<p contenteditable>This paragraph is editable; it is read-write.</p>
<p>This paragraph is not editable; it is read-only.</p>
p {
font-size: 150%;
padding: 5px;
border-radius: 5px;
}
p:read-only {
background-color: red;
color: white;
}
p:read-write {
background-color: lime;
}
Spezifikationen
| Spezifikation |
|---|
| HTML> # selector-read-only> |
| Selectors Level 4> # read-only-pseudo> |
Browser-Kompatibilität
Siehe auch
:read-write- HTML-Attribut
contenteditable