Прозрачный фон <div> CSS

Для тех, кто не может ждать Fiddle

У меня есть эта проблема в CSS. Структура кода html и css выглядит так:

HTML:

<div class="one">
    <div class="two">
        <div class="three">

        </div>
    </div>
</div>

CSS

.one{
    width: 500px;
    height: 500px;
    background: url('http://www.moonlightcompanies.com/wp-content/uploads/2013/01/6973_MOONF-PomegranatesOnTree-8536-1.jpg');
    background-size: cover;
    background-repeat: no-repeat;
    padding: 20px;
}

.two{
    width: 300px;
    height: 300px;
    background: blue;
    padding: 20px;
}

.three{
    width: 200px;
    height: 200px;
    background: transparent;
    padding: 20px;
    border: 5px solid yellow;
}

Моя проблема заключается в том, как сделать фон <div class="three"></div> прозрачным и смешаться с фоном <div class="one"></div>. Я хочу, чтобы мой желаемый результат был как прикрепленный образ. Возможно ли это?

enter image description here

Ответ 1

Вы можете попробовать следующее: Демо

.three{
    width: 200px;
    height: 200px;
    background: transparent;
    padding: 20px;
    border: 5px solid yellow;
    outline:solid 100px rgba(0,0,255,.5);
}

обновите значение границы в соответствии с вашим требованием.

Обновлено Демо

.three {
    background: transparent;
    border: solid blue;
    margin: 10px 0px;
    border-width:20px 40px 40px 20px;
}
.inner {
    outline: 5px solid yellow;
    width: 200px;
    height: 60px;
    margin:0;
    padding: 20px;
}

Ответ 2

Я добавил :before и :after также для синего фона справа и внизу, так что во втором div можно добавить больше контента.

Вот скрипка - http://jsfiddle.net/afelixj/ouy9thkk/15/

Ответ 3

В соответствии с вашей обновленной скриптой: https://jsfiddle.net/ouy9thkk/14/

Я использовал тень окна для достижения ожидаемого результата.

HTML

<div class="one">
    <div class="two">
        <div class="three"></div>
        <div class="three"></div>
        <div class="three"></div>
    </div>
</div>

CSS

.one{
    width: 800px;
    height:800px;
    background: url('http://www.moonlightcompanies.com/wp-content/uploads/2013/01/6973_MOONF-PomegranatesOnTree-8536-1.jpg');
    background-size: cover;
    background-repeat: no-repeat;
    padding: 20px;
}

.two{
    width: 300px;
    height: 300px;
    padding: 20px;
}

.three{
    width: 200px;
    height: 80px;
    background: transparent;
    padding: 20px;
    margin-bottom:30px;
    border: 5px solid yellow;
    box-shadow: 10px 0px 0 30px blue
}

Ответ 4

Попробуйте Fiddle

.one{
    width: 500px;
    height: 500px;
    background: url('http://www.moonlightcompanies.com/wp-content/uploads/2013/01/6973_MOONF-PomegranatesOnTree-8536-1.jpg');
    background-size: cover;
    background-repeat: no-repeat;
    padding: 20px;    
}
.blue{
    position: relative;
    width: 200px;
    height: 200px;
    border: 1px solid blue; 
    border-width: 20px 115px 65px 20px;
}
.yellow{
    width: 95%;
    height: 95%;
    border: 5px solid yellow;
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    bottom: 0;
    margin: auto;    
}

Ответ 5

Ближе всего я мог бы получить этот конкретный случай:

.two{
width: 250px;
height: 250px;
background: trasparent;
padding: 0px;
border-top: 20px solid blue;
border-right: 60px solid blue;
border-bottom: 60px solid blue;
border-left: 20px solid blue;
}

JSFiddle

Ответ 6

попробуйте этот пример: (

jsfiddle.net/MxspA/6/

) используйте прямоугольное изображение, которое должно быть прозрачным из центра, как показано ниже.

jsfiddle.net/MxspA/6/