Quantcast
Channel: CSSタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8818

【css】90度以外のアローを再現する

$
0
0
ヒーローイメージが画面いっぱいに表示されるデザインだ。 ん? スクロールを促す下向きのアローがある。 SVGでもいいけれど、cssでどうにかしようか。 あれ? よく見たら角度が90度じゃないぞ。 あれ!? さらによく見たらボーダーの角が丸いぞ!? むー、SVGかー。cssで行きたかったなー。 と、デザインを見て思うことがある。(ないかもしれない) これがもし90度の普通のアローであればなんてことはない。 正方形を作って 2辺にboredeを指定して 回転させる これだけでできる。90度のチェックマークしたければ、正方形ではなくて長方形を作ればいい。 角度が90度じゃない なんかちょっと角丸 SVG使いたくない(なぜ?) というときのためのcss。 サンプル See the Pen css arrow by masayuki abe (@masayuki-abe) on CodePen. .sampleはただのレイアウトのための要素 アローは左と右を疑似要素のbeforeとafterで表現する なんとなくわかりやすいようにpにborderつけた たとえばW60*H20のアローだったら 疑似要素のサイズはどうすればいいだろうか? ここで、W60の半分なのだからwidth:30px;では? とやると失敗する。 (そう思う人がどれくらいいるかはわからない。自分だけかもしれない) 考え方としては、W60/2*H20の四角形の対角線、となる。 四角形(ここでは長方形)の対角線の求め方は、 √(a^2 + b^2) 3秒で計算!?長方形の対角線の求め方がわかる公式 https://media.qikeru.me/rectangle-diagonal/ 今回の場合だと、√30*30+20*20≒36なので、width:36px;となる。 heightは線の太さにするので任意。わかりやすく少し太く。 ポイントは 親要素にposition:relative;を指定して、疑似要素はabsolute 今回は下向きのアローなので、bottom:-4px; beforeとafterはleft:50%;で位置を微調整する 今回は120度の角度で作りたいので、(180-120)/2の値をtransform:rotate(XXdeg);で指定する(beforeは180degから解を引く) この計算ができれば、ほしい角度のアローができる。

Viewing all articles
Browse latest Browse all 8818

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>