Непрозрачность CSS и дочерние элементы

<style type="text/css">
div#foo {
    background: #0000ff;
    width: 200px;
    height: 200px;

    opacity: 0.30;
    filter: alpha(opacity = 30);
}
div#foo>div {
    color: black;
    opacity:1;
    filter: alpha(opacity = 100);
}
</style>

<div id="foo">
    <div>Lorem</div>
    <div>ipsum</div>
    <div>dolor</div>
</div>

В вышеупомянутом примере, непрозрачности div#foo наследован дочерними элементами, заставив текст стать почти нечитабельным. Я предполагаю, что неправильно сказать, что это наследовано, непрозрачность применяется к родительскому отделению, и дети являются частью этого, таким образом пытание переопределить его для дочерних элементов не работает, потому что технически они непрозрачны.

Я обычно просто использую альфу png фоновое изображение в таких случаях, но сегодня я задаюсь вопросом, существует ли лучший способ сделать фон отделения полупрозрачным, не влияя на содержание.

17
задан Rob 1 April 2010 в 15:30
поделиться

2 ответа

Вы можете использовать rgba () .

div#foo
{
    background: rgba(0, 0, 255, 0.3);
}

Чтобы заставить его работать в старых Internet Explorer, используйте CSS PIE . Есть некоторые ограничения , но они обрабатываются обратно совместимым способом: значение RGB будет отображаться правильно, а непрозрачность будет проигнорирована.

37
ответ дан 30 November 2019 в 10:46
поделиться

Если вы используете непрозрачность, вам придется поместить их в отдельные DIV'ы, а затем выстроить их вместе. Фоновый DIV будет иметь меньшую непрозрачность, а передний DIV будет содержать ваш контент со 100% непрозрачностью.

5
ответ дан 30 November 2019 в 10:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: