Приведенный ниже простой HTML-код по-разному отображается в браузерах на основе Firefox и WebKit (я проверял в Safari, Chrome и iPhone).
В Firefox и рамка, и текст имеют одинаковый цвет ( #880000
), но в Safari текст становится немного светлее (как если бы к нему была применена некоторая прозрачность).
Можно как-то это исправить (убрать прозрачность в Safari)?
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<style type="text/css">
input:disabled{
border:solid 1px #880000;
background-color:#ffffff;
color:#880000;
}
</style>
</head>
<body>
<form action="">
<input type="text" value="disabled input box" disabled="disabled"/>
</form>
</body>
</html>
Ответы:
-webkit-text-fill-color: #880000; opacity: 1; /* required on iOS */
источник
1
Mobile Safari.opacity:1
тоже необходимо.placeholder
цвета текстаinput
элемента. Если вам тоже понадобится исправление, посмотрите эту ссылку: css-tricks.com/almanac/selectors/p/placeholderБраузеры webkit для телефонов и планшетов (Safari и Chrome) и IE для настольных ПК имеют ряд изменений по умолчанию для отключенных элементов формы, которые вам нужно переопределить, если вы хотите стилизовать отключенные входы.
-webkit-text-fill-color:#880000; /* Override iOS / Android font color change */ -webkit-opacity:1; /* Override iOS opacity change affecting text & background color */ color:#880000; /* Override IE font color change */
источник
это интересный вопрос, и я перепробовал множество переопределений, чтобы посмотреть, смогу ли я его запустить, но ничего не работает. Современные браузеры на самом деле используют свои собственные таблицы стилей, чтобы сообщать элементам, как отображать, так что, возможно, если вы сможете вынюхать таблицу стилей Chrome, вы сможете увидеть, какие стили они навязывают ей. Я буду очень заинтересован в результате, и если у вас его нет, я потрачу немного времени на его поиски позже, когда у меня будет время, чтобы его терять.
FYI,
opacity: 1!important;
не отменяет его, поэтому я не уверен, что это непрозрачность.
источник
Вы можете изменить цвет , чтобы
#440000
только для Safari, но ИМХО лучшее решение было бы не изменения внешности кнопки на всех . Таким образом, в каждом браузере на любой платформе он будет выглядеть так, как этого ожидают пользователи.источник
ОБНОВЛЕНО 2019:
Объединение идей с этой страницы в решение «установил и забыл».
input:disabled, textarea:disabled, input:disabled::placeholder, textarea:disabled::placeholder { -webkit-text-fill-color: currentcolor; /* 1. sets text fill to current `color` for safari */ opacity: 1; /* 2. correct opacity on iOS */ }
источник
Вы можете использовать атрибут readonly вместо атрибута disabled, но тогда вам нужно будет добавить класс, потому что нет ввода псевдокласса: readonly.
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <style type="text/css"> button.readonly{ border:solid 1px #880000; background-color:#ffffff; color:#880000; } </style> </head> <body> <form action=""> <button type="button" readonly="readonly" class="readonly">disabled input box</button> </form> </body> </html>
Помните, что отключенный ввод и ввод только для чтения - это не одно и то же. Вход только для чтения может иметь фокус и будет отправлять значения при отправке. Посмотрите на w3.org
источник
для @ryan
Я хотел, чтобы мое отключенное поле ввода выглядело как обычное. Это единственное, что работает в Safari Mobile.
-webkit-text-fill-color: rgba(0, 0, 0, 1); -webkit-opacity: 1; background: white;
источник
Если вы хотите , чтобы решить эту проблему для всех входов с ограниченными физическими возможностями, вы можете определить ,
-webkit-text-fill-color
кcurrentcolor
, так чтоcolor
будет использоваться свойство ввода.input[disabled] { -webkit-text-fill-color: currentcolor; }
Посмотрите эту скрипку в Safari https://jsfiddle.net/u549yk87/3/
источник
Этот вопрос очень старый, но я подумал, что опубликую обновленное решение webkit. Просто используйте следующий CSS:
input::-webkit-input-placeholder { color: #880000; }
источник
-webkit-text-fill-color
) действительно работаетМожете ли вы использовать кнопку вместо ввода?
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <style type="text/css"> button:disabled{ border:solid 1px #880000; background-color:#ffffff; color:#880000; } </style> </head> <body> <form action=""> <button type="button" disabled="disabled">disabled input box</button> </form> </body> </html>
источник