удалить эффект размытия на дочернем элементе

18

У меня есть <div> с фоновым изображением с эффектом размытия.

-webkit-filter: blur(3px);
-moz-filter: blur(3px);
-o-filter: blur(3px);
-ms-filter: blur(3px);
filter: blur(3px);

Единственная проблема заключается в том, что все дочерние элементы также получают эффект размытия. Можно ли избавиться от эффекта размытия на всех дочерних элементах?

<div class="content">
    <div class="opacity">
        <div class="image">
            <img src="images/zwemmen.png" alt="" />
        </div>
        <div class="info">
             a div wih all sort of information
        </div>
    </div>
</div>


    .content{
        float: left;
        width: 100%;
        background-image: url('images/zwemmen.png');
        height: 501px;
        -webkit-filter: blur(3px);
        -moz-filter: blur(3px);
        -o-filter: blur(3px);
        -ms-filter: blur(3px);
        filter: blur(3px);
    }

    .opacity{
        background-color: rgba(5,98,127,0.9);
        height:100%;
        overflow:hidden;
    }
.info{
    float: left;
    margin: 100px 0px 0px 30px;
    width: 410px;
}

Ссылка

    
задан Robert Verkerk 14.03.2014 в 14:33
источник
  • Я так не верю. Можете ли вы вместо этого переработать разметку, чтобы ребенок вместо этого стал родным братом? Вы должны иметь возможность расположить его так, чтобы он отображался по желанию. –  Mister Epic 14.03.2014 в 14:37
  • Почему изображение как встроенное, так и фоновое изображение? –  Paulie_D 14.03.2014 в 14:38
  • @Paulie_D Я добавил jsfiddle ... Я использую одно и то же изображение дважды. 1 раз в качестве фона (тот, который будет размыт) и один раз на лицевой стороне страницы. –  Robert Verkerk 14.03.2014 в 14:40

1 ответ

13

Создайте div внутри содержимого & amp; дать bg изображение & amp; эффект размытия к нему. & Амп; дайте ему z-index меньше opacity div, что-то вроде этого.

<div class="content">
    <div class="overlay"></div>
    <div class="opacity">
        <div class="image">
            <img src="images/zwemmen.png" alt="" />
        </div>
        <div class="info">
             a div wih all sort of information
        </div>
    </div>
</div>

Использовать Css

.content{
    float: left;
    width: 100%;
}

.content .overlay{
    background-image: url('images/zwemmen.png');
    height: 501px;
    -webkit-filter: blur(3px);
    -moz-filter: blur(3px);
    -o-filter: blur(3px);
    -ms-filter: blur(3px);
    filter: blur(3px);
    z-index:0;
}

.opacity{
    background-color: rgba(5,98,127,0.9);
    height:100%;
    overflow:hidden;
    position:relative;
    z-index:10;
}
    
ответ дан demonofthemist 14.03.2014 в 14:39
  • Спасибо, пришлось объявить абсолютную позицию .content .overlay, но теперь он работает. –  Robert Verkerk 14.03.2014 в 15:24