LoginSignup
19
15

More than 5 years have passed since last update.

CSSで八角形の表現をする

Posted at

CSS Shapesの話とかじゃないのであしからず。

cssoctagon.png

CSS

仕組みはけっこう単純。

擬似要素に角の役割をしてもらう。

.octagon {
  position: relative;
}
.octagon:before, .octagon:after {
  display: block;
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  border: 20px solid transparent;
}
.octagon:before {
  bottom: 100%;
  border-bottom-color: inherit;
}
.octagon:after {
  top: 100%;
  border-top-color: inherit;
}

.octagon-color {
  background-color: #DDAAAA;
  border-color: #DDAAAA;
}

ポイントと注意点は、

  • :before:afterの擬似要素をpositionで配置する
  • 擬似要素のborderで台形をつくる
  • positionでボックスの外側に配置しているので、実際に配置されるときには、前後の要素との余白の取り方などに注意
  • box-shadowとかで影をつけるのは辛い。

Codepen

19
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
15