Стиль opacity
влияет на весь элемент и все в нем. Правильный ответ на этот вопрос - использовать цвет фона rgba.
CSS довольно прост:
.myelement {
background: rgba(200, 54, 54, 0.5);
}
... где первые три числа - это красные, зеленые и синие значения для вашего цвета фона, а четвертое - это значение альфа-канала, которое работает так же, как и значение opacity
.
См. Эту страницу для получения дополнительной информации: http://css -tricks.com / rgba-browser-support /
Недостатком является то, что это не работает в IE8 или ниже. На странице, на которую я ссылался выше, также перечислены несколько других браузеров, в которых он не работает, но они все очень старые; все используемые в настоящее время браузеры, кроме IE6 / 7/8, будут работать с цветами rgba.
Хорошей новостью является то, что вы можете заставить IE работать и с этим, используя хак под названием CSS3Pie . CSS3Pie добавляет ряд современных функций CSS3 к более старым версиям IE, включая цвета фона rgba.
Чтобы использовать CSS3Pie для фона, вам нужно добавить определенное объявление -pie-background
в ваш CSS, а также стиль PIE behavior
, чтобы ваша таблица стилей в итоге выглядела так:
.myelement {
background: rgba(200, 54, 54, 0.5);
-pie-background: rgba(200, 54, 54, 0.5);
behavior: url(PIE.htc);
}
Надеюсь, это поможет.
[EDIT]
Для чего стоит, как уже упоминали другие, вы можете использовать стиль IE filter
с ключевым словом gradient
. Решение CSS3Pie на самом деле использует ту же технику за кулисами, но устраняет необходимость возиться непосредственно с фильтрами IE, поэтому ваши таблицы стилей намного чище. (он также добавляет множество других полезных функций, но это не имеет отношения к этому обсуждению)