2016-10-27 2 views
1

Я пытаюсь добиться такого же результата thisДиагональ ДИВ с изображением

Предпочтительно черные и синие части отдельные дивы, потому что я пытаюсь добиться в противном случае будет очень трудно/невозможно. HTML код будет выглядеть примерно так

<div class="diagonal"> 
    <div class="diagonal-black"></div> 
    <div class="diagonal-blue"></div> 
</div> 

Спасибо,

Брэма

ответ

4

Использование границ на псевдо-элемента :

.diagonal {width:700px; height:200px;} 
 
.diagonal-black {float:left; background:black; width:50%; height:200px;} 
 
.diagonal-blue {float:right; background:blue; width:50%; height:200px; position:relative;} 
 
.diagonal-blue:after {position:absolute; content:""; width:0; top:0; left:-50px; height:0; border-bottom:200px solid transparent; border-right:50px solid blue;}
<div class="diagonal"> 
 
    <div class="diagonal-black"><img src="https://placekitten.com/350/200" alt="" /></div> 
 
    <div class="diagonal-blue"></div> 
 
</div>

+0

Спасибо, это почти то, что мне нужно. Скажем, я хочу заменить черный на изображение, как бы я это сделал? – bramhaag

+0

то что бы вы хотели, чтобы это выглядело? будет ли голубой диагональный бит поверх изображения? – andi

+0

Да, это было бы прекрасно. – bramhaag

0

Я думаю, что наиболее распространенным способом является использование клип-путь. Другой способ - использовать границы. Есть учебники по обоим. Вот пример того, как сделать ваш пример работы

DEMO

.diagonal { 
    height: 500px; 
    width: 500px; 
    background: blue; 
} 
.diagonal-black { 
    background: black; 
    width: 100%; 
    height: 100%; 
-webkit-clip-path: polygon(74% 0, 100% 0, 100% 100%, 0% 100%); 
clip-path: polygon(74% 0, 100% 0, 100% 100%, 0% 100%); 
} 

А вот сайт используется, чтобы легко сгенерировать предпочтительную форму и угол Clippy

+0

Не совсем то, что я ищу, левая часть должна быть изменяемыми без влияния правой части – bramhaag

0

Как насчет этого?

<div class='diagonal'></div> 

<style> 
.diagonal { 
    position: relative; 
    width: 100%; 
    height: 300px; 
    background-color: black; 
    overflow: hidden; 
} 

.diagonal::after { 
    content: ''; 
    position: absolute; 
    left: 50%; 
    width: 100%; 
    height: 200%; 
    background-color: blue; 
    -webkit-transform: skewX(45deg) translateX(-50%); 
    -moz-transform: skewX(45deg) translateX(-50%); 
    -ms-transform: skewX(45deg) translateX(-50%); 
    -o-transform: skewX(45deg) translateX(-50%); 
    transform: skewX(45deg) translateX(-50%); 
} 
</style> 

В принципе этот способ все, что вам нужно сделать, это настроить transform, width и/или height, чтобы получить его в нужном положении вы хотите.

jsbin example

+0

Дело в том, что мне нужно иметь возможность изменять содержимое двух разделов, что я не могу с этим примером. Спасибо хоть. – bramhaag

Смежные вопросы