The 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, а також behavior
стиль PIE , щоб ваш таблиця стилів виглядала так:
.myelement {
background: rgba(200, 54, 54, 0.5);
-pie-background: rgba(200, 54, 54, 0.5);
behavior: url(PIE.htc);
}
Сподіваюся, що це допомагає.
[EDIT]
Для чого варто, як уже згадували інші, ви можете використовувати filter
стиль IE із gradient
ключовим словом. Рішення CSS3Pie фактично використовує цю саму техніку за кадром, але позбавляє вас від необхідності возитися безпосередньо з фільтрами IE, тому ваші таблиці стилів набагато чистіші. (це також додає цілу купу інших приємних функцій, але це не стосується цієї дискусії)