Ответ 1
Существуют две основные проблемы с тем, что у вас есть, что мешает ему работать:
-
Условное свойство
background
, а неbackground-image
. -
Цвет фона, который в вашем случае
rgba(0, 0, 0, 0.4)
, должен быть указан последним.
Если строковый синтаксис заканчивается слишком запутанным, вы всегда можете отдельно установить отдельные свойства, передавая им одинаковое количество разделенных запятыми значений, соответствующих количеству фоновых слоев (градиенты CSS считаются изображениями). Однако если вы установите background-color
, вы можете указать его только один раз.
Помните, что при указании нескольких фонов порядок, в котором они отображаются, сначала продержится, сверху вниз. Вот почему цвет, как ожидается, будет последним в сокращенной декларации. Этот раздел спецификации описывает его, а этот раздел содержит полный синтаксис:
Значение:
[ <bg-layer> , ]* <final-bg-layer>
Где
<bg-layer> = <bg-image> || <position> [ / <bg-size> ]? || <repeat-style> || <attachment> || <box>{1,2} <final-bg-layer> = <bg-image> || <position> [ / <bg-size> ]? || <repeat-style> || <attachment> || <box>{1,2} || <'background-color'>
Подробности о расслоении в отдельных свойствах можно найти в соответствующих разделах.
Если вы пытаетесь наложить фоновый рисунок на цвет rgba()
, возможно, вам не удастся добавить градиент под этим слоем, не применяя вместо этого градиент к :before
. Альтернативно, если вы смешаете 40% черный цвет с ограничителем градиента, вы можете удалить цвет rgba()
, оставив только графику и градиент.