問題
cssで要素をひし形(ダイヤ型)にするには?
解決策
- 要素を正方形にするために、幅(width)と高さ(height)を同じにします。
- css3のrotateを使い、「transform: rotate(45deg)」と記述します。
- rotateで変形させた後、中の要素に「transform: rotate(-45deg)」で逆方向にrotateで変形させることで、枠をひし形(ダイヤ型)にすることができます。
css3によるひし形の実現
css3を駆使することで様々な表現が実現できるため、デザインに幅が広がります。
今回はcssで要素をひし形(ダイヤ型)にする方法をご紹介します。
DEMOはこちら
要素をひし形(ダイヤ型)に加工
HTMLはこちら
要素「クラス:diamond-box」の中に、さらに中を囲う要素「クラス:inner-box」を用意します。
<div class="diamond-box">
<div class="inner-box">
<p class="text">要素をひし形(ダイヤ型)に加工</p>
</div>
</div>
CSSはこちら
要素「クラス:diamond-box」を、要素を正方形にするために、幅(width)と高さ(height)を同じにします。
そして「transform: rotate(45deg)」で45度変形させ、さらに中を囲う要素「クラス:inner-box」を「transform: rotate(-45deg)」で-45度変形させます。
.diamond-box{
width: 150px;
height: 150px;
background-color: #FCECE8;
overflow: hidden;
transform: rotate(45deg);
-webkit-transform: rotate(45deg);
}
.diamond-box .inner-box{
width: 150px;
height: 150px;
padding: 30px;
text-align: center;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-o-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
transform: rotate(-45deg);
-webkit-transform: rotate(-45deg);
}
ポイント!
- rotateを掛けた要素の中の要素に、同じ数値の逆の値(足して0になる)でrotateを掛けることで、中の要素は回転していない状態で表示することができます。
参考ページ
以下のサイトが、より詳しく解説してくれています。
【CSSのみで作るダイヤ型のボタン | WEBLABLA Web制作で使える小技集】
https://weblabla.mikim.me/button05/
コメント