Подтвердить что ты не робот

Как установить непрозрачность в родительском div и не повлиять на дочерний div?

Привет, я ищу в google, но я не могу отличить отличный ответ

Я хочу Opacity в родительском DIV, но не Child DIV

Пример

HTML

<div class="parent">
<div class="child">
Hello I am child 
</div>
</div>

Css

.parent{
background:url('../images/madu.jpg') no-repeat 0 0;
}
.child{
Color:black;
}

Примечание: - Я хочу фоновое изображение в Parent Div не цвет

4b9b3361

Ответ 1

Может быть, хорошо, если вы определяете фоновое изображение в псевдо-классе :after. Напишите вот так:

.parent{
    width:300px;
    height:300px;
    position:relative;
    border:1px solid red;
}
.parent:after{
    content:'';
    background:url('http://www.dummyimage.com/300x300/000/fff&text=parent+image');
    width:300px;
    height:300px;
    position:absolute;
    top:0;
    left:0;
    opacity:0.5;
}
.child{
    background:yellow;
    position:relative;
    z-index:1;
}

Отметьте fiddle

Ответ 2

Я знаю, что это старо, но на всякий случай это поможет кому-то другому.

<div style="background-color: rgba(255, 0, 0, 0.5)">child</div> 

Где rgba: красный, зеленый, синий и a для прозрачности.

Ответ 3

Вы можете сделать это с псевдоэлементами: (demo on dabblet.com) enter image description here

ваша разметка:

<div class="parent">
    <div class="child"> Hello I am child </div>
</div>

CSS

.parent{
    position: relative;
}

.parent:before {
    z-index: -1;
    content: '';
    position: absolute;

    opacity: 0.2;
    width: 400px;
    height: 200px;
    background: url('http://img42.imageshack.us/img42/1893/96c75664f7e94f9198ad113.png') no-repeat 0 0; 
}

.child{
    Color:black;
}

Ответ 4

Как уже упоминал Том, background-color: rgba(229,229,229, 0.85) может сделать трюк. Поместите, что на стиль родительского элемента и ребенка не будут затронуты.

Ответ 5

Вы не можете. Css сегодня просто не позволяет этого.

Логическая модель рендеринга такова:

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

Ссылка: прозрачность css

Решение состоит в том, чтобы использовать другую композицию элемента, обычно используя фиксированные или вычисленные позиции для того, что сегодня определено как ребенок: оно может выглядеть логически и визуально для пользователя в качестве дочернего элемента, но элемент не должен быть действительно ребенок в вашем коде.

Решение с использованием css: fiddle

.parent {
    width:500px;
    height:200px;    
    background-image:url('http://canop.org/blog/wp-content/uploads/2011/11/cropped-bandeau-cr%C3%AAte-011.jpg');
    opacity: 0.2;
}
.child {
    position: fixed;
    top:0;
}

Другое решение с javascript: fiddle

Ответ 7

Вы не можете этого сделать, если не выведете ребенка из родителя и поместите его с помощью позиционирования.

Единственный способ, которым я знаю и на самом деле работает, - это использовать прозрачное изображение (.png с прозрачностью) для родительского фона. Единственное отличие заключается в том, что вы не можете контролировать непрозрачность через CSS, кроме того, что он работает!