CSS :read-only Pseudo-Klasse
Die :read-only CSS-Pseudoklasse wählt Elemente aus, die nicht bearbeitbar sind. Lernen Sie die Pseudoklasse kennen und probieren Sie Beispiele aus.
Die CSS-Pseudoklasse :read-only trifft auf jedes Element zu, das der Benutzer nicht bearbeiten kann. Sie ist das genaue Gegenteil von :read-write: Jedes Element wird von einer der beiden Pseudoklassen erfasst, niemals von beiden gleichzeitig. Verwenden Sie sie, um schreibgeschützten Feldern ein unverwechselbares Aussehen zu geben — zum Beispiel einen gedämpften Hintergrund —, damit Benutzer sofort erkennen, welche Eingabefelder sie ändern können.

Was als bearbeitbar gilt
Ein Element ist bearbeitbar (und wird daher von :read-write und nicht von :read-only erfasst), wenn es eines der folgenden ist:
- Ein
<input>-Element, das weder das Attributreadonlynoch das Attributdisabledbesitzt. - Ein
<textarea>, das weder das Attributreadonlynoch das Attributdisabledbesitzt. - Jedes andere Element, bei dem das Attribut
contenteditableauftruegesetzt ist.
Alles andere ist schreibgeschützt, sodass :read-only ein Element trifft, wenn:
- es ein
<input>oder<textarea>mit dem Attributreadonlyist, oder - es ein einfaches Element ist, dessen Attribut
contenteditableauffalsegesetzt oder nicht vorhanden ist (der größte Teil der Seite — Absätze, Überschriften, Divs und so weiter).
Eine häufige Überraschung: Ein readonly-Attribut bei einem <div> oder <p> hat keine Wirkung, da readonly nur auf Formularelemente anwendbar ist. Ein solches Element wird von :read-only erfasst, weil es von Haus aus nicht bearbeitbar ist — nicht wegen des Attributs readonly. Um ein Nicht-Formularelement bearbeitbar zu machen, verwenden Sie contenteditable="true".
:read-only kann mit anderen Selektoren verkettet werden (wie :hover) und mit Pseudo-Elementen kombiniert werden (wie ::after).
Version
CSS Basic User Interface Module Level 3
Syntax
CSS :read-only Syntax
:read-only {
css declarations;
}Beispiel des :read-only-Selektors:
CSS :read-only Code-Beispiel
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
input {
margin-bottom: 10px;
border: 1px solid #ddd;
padding: 5px;
}
input:read-only {
background-color: #ccc;
}
</style>
</head>
<body>
<h2>:read-only selector example</h2>
<form>
<div>
<label for="normal">Example1</label>
<input value="normal input" id="normal" />
</div>
<div>
<label for="read-only">Example2</label>
<input readonly value="read-only input" id="read-only" />
</div>
</form>
</body>
</html>Das aufzählbare Attribut contenteditable gibt an, ob der Benutzer das Element bearbeiten kann. Wenn es aktiviert ist, wird das Browser-Widget so modifiziert, dass eine Bearbeitung möglich ist. Das Attribut sollte einen der folgenden Werte haben:
true(oder die leere Zeichenkette), was angibt, dass das Element bearbeitbar sein soll;false, was angibt, dass das Element nicht bearbeitbar sein soll.
Beispiel des :read-only-Selektors mit dem contenteditable-Attribut:
Beispiel der CSS :read-only-Pseudoklasse mit dem contenteditable-Attribut
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
p:read-only {
background: #8ebf42;
}
p[contenteditable="true"] {
color: #777777;
}
</style>
</head>
<body>
<h2>:read-only selector example</h2>
<p>Example of a normal paragraph.</p>
<p contenteditable="true">Example of a contenteditable paragraph! Just click and edit!</p>
</body>
</html>Beispiel des :read-only-Selektors mit dem HTML-Tag <textarea> beim Hover:
Beispiel des CSS :read-only-Selektors mit dem HTML-Tag <textarea> und Hover-Zustand
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
textarea:read-only {
background: #ffffff;
}
textarea:read-only:hover {
cursor: not-allowed;
background: #8ebf42;
}
</style>
</head>
<body>
<h2>:read-only selector example</h2>
<textarea cols="40" rows="5" readonly>Here is an example of :read-only selector on hover.</textarea>
</body>
</html>Beispiel des :read-only-Selektors mit dem HTML-Tag <div> und den Pseudo-Elementen :after und :before:
Beispiel der CSS :read-only-Pseudoklasse mit den Pseudo-Elementen :before und :after
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
div:read-only:hover {
background-color: #eee;
}
div:read-only:before,
div:read-only:after {
content: " / ";
padding: 10px;
color: #1c87c9;
font-size: 30px;
}
</style>
</head>
<body>
<h2>:read-only selector example</h2>
<div readonly>Here is an example of :read-only selector on hover.</div>
<br />
<div contenteditable="true">Example of a contenteditable paragraph! Just click and edit!</div>
</body>
</html>