Ну вот!
HTML
<div class="wrap">
<div class="absolute">
Some content yo!
</div>
</div>
CSS
html,body {
height:100%;
margin:0;
padding:0;
}
body {
background:url(http://placehold.it/250) repeat 0 0;
}
div.wrap {
position:relative;
margin:0;
padding:0;
width: 100%;
height:100%;
box-sizing:border-box;
-mox-box-sizing:border-box;
border-top:rgba(25,25,255,0.8) solid 50vh; /* Nothing below IE8 or Firefox 19 */
border-bottom:rgba(25,25,255,0.8) solid 50vh; /* Nothing below IE8 or Firefox 19 */
border-left: rgba(0,0,255,0.5) solid 50vw;;
border-right: rgba(0,0,255,0.5) solid 50vw;;
-moz-background-clip: content; /* Firefox 3.6 */
-webkit-background-clip: content; /* Safari 4? Chrome 6? */
background-clip: content-box; /* Firefox 4, Safari 5, Opera 10, IE 9 */
}
div.absolute {
position:absolute;
left:-50vw;
top:-50vh;
}
Вот скрипка: http://jsfiddle.net/485vb/4/
Итак, в основном это использует свойство background-clip
, чтобы сказать: «Сохраняйте содержимое непрозрачным, все снаружи может быть прозрачным».
Затем мы используем vw
и vh
или единицы области просмотра, чтобы установить левую и правую границы чуть менее 50% ширины области просмотра (vw
), а верх и низ установить чуть менее 50% высоты области просмотра (vh
).
Это должно приблизить вас к тому, что вы хотите сделать.
EDIT Комментарий GCyrillus тоже действительно хорошее решение.
EDIT 2 Обновлено, чтобы включить позиционированный контент.
person
disinfor
schedule
30.06.2014