Изменение непрозрачности фонового изображения - программирование
Подтвердить что ты не робот

Изменение непрозрачности фонового изображения

У меня есть элемент div с текстовыми блоками и родительский div, в котором я установил фоновое изображение. Теперь я хочу уменьшить непрозрачность фонового изображения. Пожалуйста, предложите, как я могу это сделать.

Спасибо заранее.

EDIT:

Я хочу изменить способ публикации моего блога на blogger.com, отредактировав содержимое html. Код html выглядит следующим образом:

<div>
 //my blog post
</div>

Я попытался окружить весь код выше элементом div и установить непрозрачность каждого div отдельно, как показано ниже:

<div style="background-image:url("image.jpg"); opacity:0.5;">
<div style="opacity:1;">
 //my blog post
</div>
</div>

Но он не работает.

4b9b3361

Ответ 1

Ничего не называют фоновой непрозрачностью. Непрозрачность применяется к элементу, его содержимому и всем его дочерним элементам. И это поведение нельзя изменить, просто переопределив непрозрачность в дочерних элементах.

Прозрачность Child vs parent была давней проблемой, и наиболее распространенным решением для нее является цвет фона rgba(r,g,b,alpha). Но в этом случае, поскольку это фоновое изображение, это решение не будет работать. Одним из решений было бы создание изображения в виде PNG с требуемой непрозрачностью в самом изображении. Другим решением было бы вывести ребенка и сделать его абсолютно позиционированным.

Ответ 2

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

http://jsfiddle.net/m4TgL/

HTML:

<div class="container">
    <div class="content">//my blog post</div>
</div>​

CSS

.container {  position: relative; }

.container:before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 1;
    background-image: url('image.jpg');
   opacity: 0.5;
}

.content {
    position: relative; 
    z-index: 2;
}​

Ответ 3

В настоящее время это возможно сделать с помощью CSS-свойства "background-blend-mode".

<div id="content">Only one div needed</div>

div#content {
    background-image: url(my_image.png);
    background-color: rgba(255,255,255,0.6);
    background-blend-mode: lighten;
    /* You may add things like width, height, background-size... */
}

Он смешает фоновый цвет (белый, 0.6 непрозрачность) на фоновое изображение. Подробнее здесь (W3S).

Ответ 4

Вы можете создать несколько div и сделать это:

<div style="width:100px; height:100px;">
   <div style="position:relative; top:0px; left:0px; width:100px; height:100px; opacity:0.3;"><img src="urltoimage" alt=" " /></div>
   <div style="position:relative; top:0px; left:0px; width:100px; height:100px;"> DIV with no opacity </div>
</div>

Я сделал пару раз... Простой, но эффективный...

Ответ 5

Отвечая на более ранний комментарий, вы можете изменить фон по переменной в примере "контейнер", если CSS находится на вашей php-странице, а не в таблице стилей CSS.

$bgimage = '[some image url];
background-image: url('<?php echo $bgimage; ?>');

Ответ 6

Что я сделал:

<div id="bg-image"></div>
<div class="container">
    <h1>Hello World!</h1>
</div>

CSS:

html {
    height: 100%;
    width: 100%;
}
body {
    height: 100%;
    width: 100%;
}
#bg-image {
    height: 100%;
    width: 100%;
    position: absolute;
    background-image: url(images/background.jpg);
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
    opacity: 0.3;
}

Ответ 7

и вы можете сделать это с помощью простого кода:

filter:alpha(opacity=30);
-moz-opacity:0.3;
-khtml-opacity: 0.3;
opacity: 0.3;