【CSS】clip-pathを使って斜めにセクションを区切る

【CSS】clip-pathを使って斜めにセクションを区切る

clip-pathで要素を切り抜けば、セクションを斜めに区切ることも可能です。

三角形に切り抜く場合はこちらの記事を参考

clip-pathで要素を斜めに切り抜く

まずはデモページをご覧ください。

デモページはこちら ⇒ デモページ

セクションを斜めに区切る方法は、borderを使った方法、transform: skewY()を使った方法などいくつかの方法がありますが、clip-pathで要素を切り抜く方法が一番簡単でおすすめです。

※もうIE11は諦めてください、、、

今回も三角形と同じで、polygonを使います。

clip-path: polygon(x y, x y, x y, x y);

座標の取り方は下記ツールに頼ります。

簡単に切り抜くことができるオンラインツール Clippy CSS clip-path maker

https://bennettfeely.com/clippy/

マウスで好きな形に変更すると、画面下の方にコードが出てきます。

右上がり斜めに区切る

<div class="sec-wrap1"><!--sec-wrap1-->
<section id="sec1">
  <div><p>コンテンツ上(section#sec1)</p></div>
</section>
<section id="sec2">
  <div><p>コンテンツ下(section#sec2)</p></div>
</section>
</div><!--sec-wrap-->
.sec-wrap1{
    background: #e4e1ce;
    box-sizing: border-box;
}
section#sec1{
    padding: 150px 20px;
    clip-path: polygon(0 0, 100% 0, 100% calc(100% - 8vw), 0 100%);
    background-color: #F1C122;
}
section#sec2{
    padding: 150px 20px;
  background: #e4e1ce;
}

sectionをdivで包んでるのは、clip-pathで切り抜くと切り出された要素の背景が見えちゃうので、親要素を作って背景色を指定しているからです。

テスト用に書いているコードなので、実装の際は親要素に背景色を指定してあげればOKです。

calc関数で座標を取っているのは、画面の幅が変化した際に同じ角度を保つための対策です。

一定の角度をキープしたいときなどに使えます。

右下がり斜めに区切る

<div class="sec-wrap2"><!--sec-wrap2-->
<section id="sec3">
  <div><p>コンテンツ上(section#sec3)</p></div>
</section>
<section id="sec4">
  <div><p>コンテンツ下(section#sec4)</p></div>
</section>
</div><!--sec-wrap-->
.sec-wrap2{
    background: #e4e1ce;
    box-sizing: border-box;
}
section#sec3{
padding: 150px 20px;
background: #6a5f5f;
clip-path: polygon(0 0, 100% 0%, 100% 100%, 0 80%);
}
section#sec4{
  padding: 150px 20px;
  background: #e4e1ce;
}

右上がりはcalc関数を使わずに%で座標を設定してみています。
ケースバイケースで使い分けてください。

上下斜めに区切る

<div class="sec-wrap3"><!--sec-wrap-->
<section id="sec5">
  <div><p></p></div>
</section>
<section id="sec6">
  <div><p></p></div>
</section>
<section id="sec7">
  <div><p></p></div>
</section>
</div><!--sec-wrap-->
.sec-wrap3{
    background: #f8faed;
    box-sizing: border-box;
}
section#sec5{
padding: 150px 20px;
  background: #f8faed;
}
section#sec6{
  padding: 250px 20px;
  background: #F1C122;
  clip-path: polygon(0 21%, 100% 0%, 100% 100%, 0 80%);
}
section#sec7{
  padding: 150px 20px;
  background: #f8faed;
}

上下を斜めに区切りたい場合は、3つセクションを用意して、中央の上下を切り抜くか、上のセクションと下のセクションを切り抜けばOKです。

今回は中央のセクションを切り抜いています。

おすすめの記事