▲TOPへ戻る

【CSS】transform:skewYで視線を下方向へ誘導する三角形をデザインする

やりたいこと

LP(ランディングページ)などでよく見る、下方向に視線を誘導する三角形をCSSでつくる 方法を紹介します。

HTML

HTMLはこれだけです。

<section></section>
<section></section>

CSS

section {
  position: relative;  /* 親要素にrelativeを指定 */
  width: 100%;
  height: 300px;
  overflow: hidden;
}
section:nth-of-type(1) {  /* 1つ目のsectionのbackgroundの色 */
  background: rgb(217, 255, 161);
}
/* before,afterの共通項目 */
section:nth-of-type(1)::before,
section:nth-of-type(1)::after {
  position: absolute; /* 子要素にabsoluteを指定 */
  content: "";
  background: #fff;  /* 二つ目のセクションのbackgroundと同じ色に */
  width: 50%;  /* 疑似要素は親要素の半分のwidth */
  height: 200px;
  bottom: -100px;
}
section:nth-of-type(1)::before{
  left: 0;
  transform: skewY(12deg);  /* 角度はお好みで調整 */
}
section:nth-of-type(1)::after {
  right: 0;
  transform: skewY(-12deg);  /* 角度はお好みで調整 */
}

skewY を使うことにより、レスポンシブに対応させることができます。

skewYを微調整

ここでは疑似要素が目に見えるようにしています。 skewYの値を変えて、形を調整してみてください。 本来は点線は見えない状態です。

before,afterのskewの値 : px
before
after

まとめ

  1. 三角部分は疑似要素before,afterを使ってつくる
  2. transform: skewYで傾きをつける

profile

パソコン好きなガオ

コロナ禍によるステイホームを機にプログラミングを学ぶ。パソコンに関してはプロではないが、ちょっと詳しい程度。

パソコン

javascript

カメラ

ブログ