Множество ответов здесь, но я не видел тот, который я использую:
input[type="text"]:read-only { color: blue; }
Обратите внимание на тире в псевдо-селекторе. Если введено значение readonly="false"
, оно также поймает это, так как этот селектор ловит присутствие только для чтения независимо от значения. Технически false
недопустимо в соответствии со спецификациями, но интернет не идеальный мир. Если вам нужно покрыть этот случай, вы можете сделать это:
input[type="text"]:read-only:not([read-only="false"]) { color: blue; }
textarea
работает так же:
textarea:read-only:not([read-only="false"]) { color: blue; }
Имейте в виду, что html теперь поддерживает не только type="text"
, но и множество других текстовых типов, таких как number
, tel
, email
, date
, time
, url
и т. Д. Каждый должен быть добавлен в селектор.