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

【初心者向け】transformを複数指定したい時は書き順に注意!

$
0
0

どうも7noteです。transformを複数書く時は書き順に注意!!!

要素を回転、拡大縮小、傾斜、移動することできるtransformですが、複数指定することができます。

まずtransformで使える指定の種類は以下の通り。

書き方指定方法例
移動translatetransform: translate(100px, 100px);
回転rotatetransform: rotate(-45deg);
伸縮scaletransform: scale(2, 2);
傾斜skewtransform: skew(30deg, 30deg);

○ transformの正しい複数指定の方法

/* 正しいtransformの複数指定の方法 */img{transform:translate(100px,100px)rotate(-45deg);}

transformを複数指定する場合は間を半角スペース空けます。
これが正しい複数指定の方法です。

× 間違った複数指定の方法

/* 間違った複数指定の方法 */img{transform:translate(100px,100px);transform:rotate(-45deg);}/* もしくは */img{transform:translate(100px,100px),rotate(-45deg);}

どちらも間違った書き方です。
もしこれを書いても前者の書き方ではtransformが上書きされrotate(-45deg)しか効きません。後者の場合はエラー扱いになり、cssが効きません

複数指定する場合は、順番に注意!!!

実際に見ていただきましょう。

/* パターン1 */img{transform:translate(100px,100px)rotate(45deg);}

image.png

/* パターン2 */img{transform:rotate(45deg)translate(100px,100px);}

image.png

どうでしょうか?
書き順によって、結果が変わってしまいます。

解説

これはcssの処理順が影響しているためです。
パターン1では先に100pxずつの移動をしてから要素を回転します。
逆にパターン2では先に回転した位置から100pxずつの移動をするので違う結果となります。


「パターン1の処理順」

translate(100px, 100px)からのrotate(45deg)
image.png

image.png

「パターン2の処理順」

rotate(45deg)からのtranslate(100px, 100px)
image.png

image.png
(画像が45度回転しているので、右下に移動後、左下に移動することで、結果下方向に移動したことになっている。)

まとめ

・複数指定す際は半角スペースを空けて繋げる
・また指定する順番には注意!左から順番に処理される。

おそまつ!

~ Qiitaで毎日投稿中!! ~
【初心者向け】WEB制作のちょいテク詰め合わせ


Viewing all articles
Browse latest Browse all 8728

Latest Images

Trending Articles

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