
CSSのborderで、イメージを斜めに切り取ったりするトリミング方法をメモします。
NewsPicksをよく読むのですが、イメージを斜めにトリミングするテクニックいいな〜と以前から思っていたので、自分で作ってみようと思い腰をようやく上げてトライしました。

イメージの下を斜めにトリミングする

背景イメージを左下から右斜め上にトリミングしています。
CSS
header{
position: relative;
height:700px;
}
.header-img{
position: relative;
overflow: hidden;
height:600px;
background-image:url(img/1.jpg);
background-repeat:noe-repeat;
background-position:center top;
background-size:cover;
z-index:0;
}
.header-img::before {
content: '';
position: absolute;
bottom: 0;
left: 0;
border-bottom: 15vw solid #fff;
border-left: 100vw solid transparent;
z-index:10;
}
borderで三角形を作成し、イメージの下の方に配置するというシンプルなものです。

以下の部分が該当の設定です。
position: absolute; bottom: 0; left: 0; border-bottom: 15vw solid #fff; border-left: 100vw solid transparent;
イメージを上下を斜めにトリミングする

これはimgタグを使用し、上下を斜めにトリミングします。
CSS
.sub-main{
position: relative;
clear:both;
}
.sub-main-img{
position: relative;
overflow: hidden;
}
.sub-main-img::before {
content: '';
position: absolute;
top: 0;
left: 0;
border-top: 10vw solid #fff;
border-right: 100vw solid transparent;
}
.sub-main-img::after {
content: '';
position: absolute;
bottom: 0;
right:0;
border-bottom: 10vw solid #fff;
border-left: 100vw solid transparent;
}
同様に疑似要素を使い、borderで上下に三角形を作成しイメージの上下に配置します。
イメージの下に中心から左右にトリミングする

イメージを矢印のようにトリミングするとストーリー性が出ていいですね。
CSS
.sub-main{
position: relative;
clear:both;
}
.sub-main-img{
position: relative;
overflow: hidden;
}
.sub-main-img::before {
content: '';
position: absolute;
bottom: 0;
left: 0;
border-bottom: 20vw solid #fff;
border-left: 100vw solid transparent;
}
.sub-main-img::after {
content: '';
position: absolute;
bottom: 0;
right: 0;
border-bottom: 20vw solid #fff;
border-right: 100vw solid transparent;
}
以上です。
デモを用意しました。