2014/04/05
[CSS] CSS3 Shapes - Diamond, Hexagon, Point Burst
CSSだけで色々な形をつくる方法です。画像をマスクのように切り取ったようにもできます。角丸やグラーデーションが簡単にCSSでできるようになったように、グラフィックソフトだと簡単につくれるこのような形も将来的に簡単なCSSだけで実現できるようになるかも。border-burst:24;とか。六角形は1:√3(1:1.7320508)の矩形を3つ60度ずつ回転させてつくっているので比率さえ変えなければ、大きさを自由に変えられます。
DEMO
ダイヤ(マスク)
ダイヤ丸(マスク)
長方形丸(マスク)
六角形
new
六角形丸
new
六角形(マスク)
トゲトゲ 24
new
トゲ丸 24
new
トゲトゲ 36
new
HTML
newnewnewnewnew
CSS
*, *:before, *:after { box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; } /* -------------------- ダイヤ(マスク) -------------------- */ .diamond { position:relative; top:1em; left:2em; width:8em; height:8em; -webkit-transform: rotate(-45deg); -ms-transform: rotate(-45deg); transform: rotate(-45deg); overflow:hidden; } .diamond img { position:relative; top:-3em; left:-2em; -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); } /* -------------------- ダイヤ丸(マスク) -------------------- */ .square-rnd { border-radius:1em; } /* -------------------- 長方形丸(マスク) -------------------- */ .rectangle { display:inline-block; position:relative; top:1.5em; left:.5em; width:8em; height:4em; -webkit-transform: rotate(-45deg); -ms-transform: rotate(-45deg); transform: rotate(-45deg); overflow:hidden; } .rectangle img { position:relative; top:-3em; left:-2em; -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); } /* -------------------- 六角形 -------------------- */ .hexagon, .hexagon:before, .hexagon:after { display: table; position: relative; top:2em; height: 5em; width: 8.66em; background: #ffde17; text-align:center; text-transform:uppercase; color:#fff; z-index: 1; } .hexagon:before, .hexagon:after { content: ''; position: absolute; top: 0; left: 0; z-index: -100; } .hexagon:before { -ms-transform: rotate(60deg); -webkit-transform: rotate(60deg); transform: rotate(60deg); } .hexagon:after { -ms-transform: rotate(-60deg); -webkit-transform: rotate(-60deg); transform: rotate(-60deg); } .hexagon span { display:table-cell; vertical-align:middle; } /* -------------------- 六角形丸 -------------------- */ .hex-rnd, .hex-rnd:before, .hex-rnd:after { border-radius:.3em/.6em; } /* -------------------- 六角形(マスク) -------------------- */ .hexagon-mask { position:relative; top:-4em; width: 8.5em; height: 17em; -webkit-transform: rotate(120deg); -ms-transform: rotate(120deg); transform: rotate(120deg); overflow: hidden; } .hexagon-mask > div, .hexagon-mask > div > div { width: 100%; height: 100%; -webkit-transform: rotate(-60deg); -ms-transform: rotate(-60deg); transform: rotate(-60deg); overflow: hidden; } .hexagon-mask img { position:relative; top:.8em; left:-.5em; } /* -------------------- トゲトゲ 24 -------------------- */ .burst-24 { position: relative; top:1em; left:1.5em; text-align: center; text-transform:uppercase; color:#fff; -webkit-transform: rotate(-45deg); -ms-transform: rotate(-45deg); transform: rotate(-45deg); z-index: 1; } .burst-24, .burst-24:before, .burst-24:after, .burst-24 > div, .burst-24 > :before, .burst-24 > :after { height: 6em; width: 6em; background: #ffde17; } .burst-24:before, .burst-24:after, .burst-24 > div, .burst-24 > :before, .burst-24 > :after { content: ""; position: absolute; top: 0; left: 0; z-index: -100; } .burst-24:before, .burst-24 > :before { -webkit-transform: rotate(15deg); -ms-transform: rotate(15deg); transform: rotate(15deg); } .burst-24:after, .burst-24 > :after { -webkit-transform: rotate(30deg); -ms-transform: rotate(30deg); transform: rotate(30deg); } .burst-24 > div { display:table; -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); z-index:2; } .burst-24 span { display:table-cell; vertical-align:middle; } /* -------------------- トゲ丸 24 -------------------- */ .burst-rnd, .burst-rnd:before, .burst-rnd:after, .burst-rnd div, .burst-rnd div:before, .burst-rnd div:after { border-radius: 10px; } /* -------------------- トゲトゲ 36 -------------------- */ .burst-36 { position: relative; top:1em; left:1.5em; text-align: center; text-transform:uppercase; color:#fff; -webkit-transform: rotate(-60deg); -ms-transform: rotate(-60deg); transform: rotate(-60deg); z-index: 1; } .burst-36, .burst-36:before, .burst-36:after, .burst-36 div, .burst-36 div:before, .burst-36 div:after { height: 6em; width: 6em; background: #ffde17; } .burst-36:before, .burst-36:after, .burst-36 div, .burst-36 div:before, .burst-36 div:after { content: ""; position: absolute; top: 0; left: 0; z-index: -100; } .burst-36:before, .burst-36 div:before { -webkit-transform: rotate(10deg); -ms-transform: rotate(10deg); transform: rotate(10deg); } .burst-36:after, .burst-36 div:after { -webkit-transform: rotate(20deg); -ms-transform: rotate(20deg); transform: rotate(20deg); } .burst-36 div { -webkit-transform: rotate(30deg); -ms-transform: rotate(30deg); transform: rotate(30deg); z-index:2; } .burst-36 > div > div { display:table; } .burst-36 span { display:table-cell; vertical-align:middle; }
0 件のコメント :
コメントを投稿