互いに左に浮かぶ2つのdivを作成したいのですが、傾斜した角度の付いた境界線でそれらを分離しています。私が何を意味するかを示すために写真を添付しました。
このようなことがCSSで可能かどうか誰かが知っていますか(オーバーフローでコンテンツを切り取る:隠されていると思います)
これらのdivには、境界線で切り取られる画像を含める必要があります。例を次に示します。
これを試して
.left, .right {
position: relative;
height: 100px;
width: 200px;
background: #000;
float: left;
}
.left:after {
content: '';
line-height: 0;
font-size: 0;
width: 0;
height: 0;
border-top: 100px solid #000;
border-bottom: 50px solid transparent;
border-left: 0px solid transparent;
border-right: 50px solid transparent;
position: absolute;
top: 0;
right: -50px;
}
.right {
margin-left: 60px;
width: 100px;
}
.right:before {
content: '';
line-height: 0;
font-size: 0;
width: 0;
height: 0;
border-top: 50px solid transparent;
border-bottom: 100px solid #000;
border-left: 50px solid transparent;
border-right: 0px solid #000;
position: absolute;
top: -50px;
left: -50px;
}
<div class="left"> </div>
<div class="right"> </div>
[〜#〜] update [〜#〜]画像付き
.left, .right {
background: #000 url('http://lorempixel.com/300/100');
position: relative;
height: 100px;
width: 250px;
float: left;
}
.left:after {
content: '';
line-height: 0;
font-size: 0;
width: 0;
height: 0;
border-top: 50px solid transparent;
border-bottom: 100px solid #fff;
border-left: 30px solid transparent;
border-right: 0 solid #fff;
position: absolute;
top: -50px;
right: 0;
}
.right {
background: #000 url('http://lorempixel.com/200/100');
width: 150px;
}
.right:before {
content: '';
line-height: 0;
font-size: 0;
width: 0;
height: 0;
border-top: 100px solid #fff;
border-bottom: 50px solid transparent;
border-left: 0px solid transparent;
border-right: 30px solid transparent;
position: absolute;
top: 0;
left: 0;
}
<div class="left"> </div>
<div class="right"> </div>
これまでのすべての解決策は、写真を分割するために非常に厚い角度の付いた境界線を持つことに依存しています。
これを回避するには、コンテナを作成して傾斜させます。次に、画像を反対方向に逆スキューします。
これがCodePen http://cdpn.io/azvsA ですが、その要点は次のとおりです。
.container {
border-right: 10px solid white;
overflow: hidden;
transform (skewX(-20deg));
}
.image {
transform (skewX(20deg));
}
あなたはこのように書くことができます:
.left, .right {
background: #000 url('http://lorempixel.com/300/100');
position: relative;
height: 100px;
width: 250px;
float: left;
}
.left{
z-index:1;
}
.parent{
overflow:hidden;
}
.right {
background: #000 url('http://lorempixel.com/200/100');
width: 150px;
}
.left:after{
content:'';
position:absolute;
border-right:20px solid #fff;
top:-25px;
bottom:-10px;
left:0;
right:-10px;
-moz-transform:rotate(10deg);
-webkit-transform:rotate(10deg);
}
これを確認してください http://jsfiddle.net/EJxFg/4/