Кратко
СкопированоПсевдокласс :read применяется к элементам формы и другим узлам, которые пользователь может редактировать. Он помогает отличать редактируемые поля от тех, которые доступны только для чтения.
К таким элементам относятся, например, <input>, <textarea> и любые элементы с атрибутом contenteditable.
Пример
СкопированоПокажем базовое использование: выделим редактируемое поле синей рамкой.
<label> Редактируемое поле <input type="text" placeholder="Можно менять текст"></label><label> Только для чтения <input type="text" value="Нельзя редактировать" readonly class="readonly"></label><label> Textarea (редактируемое) <textarea placeholder="Пиши сюда..."></textarea></label>
<label>
Редактируемое поле
<input type="text" placeholder="Можно менять текст">
</label>
<label>
Только для чтения
<input type="text" value="Нельзя редактировать" readonly class="readonly">
</label>
<label>
Textarea (редактируемое)
<textarea placeholder="Пиши сюда..."></textarea>
</label>
input:read-write,textarea:read-write { border-color: #2E9AFF;}
input:read-write,
textarea:read-write {
border-color: #2E9AFF;
}
Как пишется
СкопированоПсевдокласс :read выбирает элементы, которые можно редактировать.
Это:
<input>без атрибутовreadonlyиdisabled<textarea>безreadonlyиdisabled- элементы с
contenteditable
input:read-write,textarea:read-write,[contenteditable]:read-write { border: 1px solid #2E9AFF;}
input:read-write,
textarea:read-write,
[contenteditable]:read-write {
border: 1px solid #2E9AFF;
}
Как понять
СкопированоБраузер автоматически определяет, можно ли изменять содержимое элемента.
Если элемент:
- не заблокирован (
disabled) - не только для чтения (
readonly) - или явно редактируем (
contenteditable)
-> он попадает под :read.
Подсказки
Скопировано💡 Чаще всего :read не используют напрямую в больших проектах, потому что его поведение почти совпадает с обычными селекторами для input/textarea.
💡 Но он полезен, если у тебя есть гибкая форма, где состояние элементов меняется динамически через JavaScript.
💡 В Firefox до сих пор может использоваться префикс:
input:-moz-read-write { border-color: #2E9AFF;}
input:-moz-read-write {
border-color: #2E9AFF;
}
- Chrome 1, поддерживается
- Edge 13, поддерживается
- Firefox 78, поддерживается
- Safari 4, поддерживается