2015-06-09 3 views
5

У меня есть хорошая идея, какой ответ будет, но я просто хочу сделать абсолютно уверенным.CSS3 - Режим смешивания между различными элементами HTML

У меня есть два элемента: div.glass и div.sound, оба содержат фоновое изображение. Можно ли установить режим смешивания для каждого div так, чтобы они взаимодействовали друг с другом? Например:

div.glass, 
 
div.sound { 
 
    width: 597px; 
 
    height: 154px; 
 
    position: absolute; 
 
} 
 
div.glass { 
 
    background: url(glass.png) 0 0 no-repeat; 
 
    z-index: 9; 
 
    top: 5px; 
 
    left: 5px; 
 
} 
 
div.sound { 
 
    background: url(soundwave.png) 0 0 no-repeat; 
 
    z-index: 10; 
 
    blend-mode: multiply; 
 
    top: 50px; 
 
    left: 300px; 
 
} 
 
div.container { 
 
    position: relative; 
 
}
<div class="container"> 
 
    <div class="glass"></div> 
 
    <div class="sound"></div> 
 
</div>

ответ

5

У вас есть 2 способа использовать Blend-режимы

При выполнении этого действия в одном и том же элементе свойство является фоном-blend-mode.

Но, делая это с 2 элементами. это смесь-смесь режим

div.glass, 
 
div.sound { 
 
    width: 597px; 
 
    height: 154px; 
 
    position: absolute; 
 
} 
 
div.glass { 
 
    background: url(http://placekitten.com/1200/900) 0 0 no-repeat; 
 
    z-index: 9; 
 
    top: 5px; 
 
    left: 5px; 
 
} 
 
div.sound { 
 
    background: url(http://placekitten.com/1000/750) 0 0 no-repeat; 
 
    z-index: 10; 
 
    mix-blend-mode: difference; 
 
    top: 50px; 
 
    left: 300px; 
 
} 
 
div.container { 
 
    position: relative; 
 
}
<div class="container"> 
 
    <div class="glass"></div> 
 
    <div class="sound"></div> 
 
</div>

+0

Что такое кросс-браузерная совместимость для mix-blend-mode? – Murphy1976

+0

Насколько я знаю, то же самое, что и для background-blend-mode.Любой современный браузер, кроме IE http://caniuse.com/#feat=css-backgroundblendmode – vals

0

Вам может понадобиться использовать background-blend-mode вместо blend-mode:

div.glass, 
 
div.sound { 
 
    width: 597px; 
 
    height: 154px; 
 
    position: absolute; 
 
} 
 
div.glass { 
 
    background: url("http://i656.photobucket.com/albums/uu288/dragon-g/glass.png") 0 0 no-repeat; 
 
    z-index: 9; 
 
    top: 5px; 
 
    left: 5px; 
 
} 
 
div.sound { 
 
    background: url("http://vignette3.wikia.nocookie.net/youngjustice/images/e/ee/Sound.png/revision/latest?cb=20130330173251") 0 0 no-repeat; 
 
    z-index: 10; 
 
    background-blend-mode: multiply; 
 
    top: 50px; 
 
    left: 300px; 
 
} 
 
div.container { 
 
    position: relative; 
 
}
<div class="container"> 
 
    <div class="glass"></div> 
 
    <div class="sound"></div> 
 
</div>

+0

нет кости. все еще плоское изображение на плоском изображении. – Murphy1976

+0

@ Murphy1976 Проверить сейчас ... Обновлен ответ. ': D' –

+0

изображение фотообъекта заблокировано брандмауэром моего офиса ... но я добавил фоновый blend-режим в свой звуковой div, и я все еще получаю два плоских изображения. – Murphy1976

0

Вы можете добавить два фона для одного дел. Таким образом вы можете использовать свойство background-blend-mode для смешивания двух изображений.

Вот пример: https://jsfiddle.net/4mgt8occ/3/

HTML

<div class="container"> 
    <div class="glass_sound"></div> 
</div> 

CSS

div.glass_sound { 
      width:300px; 
      height: 300px; 
      background-size: 100%; 
     } 
.glass_sound { 
       background-image: url('https://unsplash.imgix.net/photo-1430760814266-9c81759e5e55?dpr=2&fit=crop&fm=jpg&q=75&w=1050'), url('https://unsplash.imgix.net/photo-1431184052543-809fa8cc9bd6?dpr=2&fit=crop&fm=jpg&q=75&w=1050'); 
       background-blend-mode: multiply; 
      } 
+0

Это не то, что я прошу. Я хотел знать, может ли два отдельных элемента наследовать blend-mode, например div, умноженный на другой div. вот почему я их разделил. – Murphy1976

+0

Не могли бы вы объяснить сценарий для этого варианта использования? Я уверен, что там может быть работа. – karanmhatre