Это ошибка macOS ...
Браузеры используют Системный цвет ButtonFace
для кнопок background-color
, поэтому ОС определяет, какой цвет используется. В macOS он белый (0xFFFFFFFF
) обычно и полупрозрачный белый, когда вход отключен (0xFFFFFF80
).
Аналогично они устанавливают color
в системный цвет ButtonText
по умолчанию черный (0x00000000
) обычно и полупрозрачный черный при отключении (0x00000033
).
Цвет ButtonFace
также имеет другой вариант с градиентным цветом bluei sh, когда: активен .
Это означает, что когда ваш
Вот скрипка для пользователей MacOS :
body {
background-image: linear-gradient(red, blue);
background-size: 10px 10px;
}
<button disabled>disabled</button>
<button>enabled</button>
И скриншот для других.

Как видите, Отключенная кнопка на самом деле прозрачна.
Чтобы преодолеть это, у вас нет выбора, кроме как определить свои собственные стили, потому что они используют полупрозрачные цвета, а не opactiy
, который вы могли бы легко перезаписать. Хотя имейте в виду, что эти системные цвета влияют даже на границы, и поскольку другие ОС могут иметь свое собственное поведение со всеми этими состояниями, вам, возможно, придется определить стили для всех различных состояний, а не только для отключенных.
PS: забавный факт для Chrome браузера. Если вы измените уровень масштабирования браузера, он перестанет использовать системный цвет, и цвет больше не будет прозрачным.