2024.08.17

HTML・CSS

transform複数指定時の順番について

transformプロパティで複数指定する場合は、指定の順番に注意が必要です。
デモページはこちら

以下のhtml構造で確認します。

<p>transform指定なし → translate → rotate → scale</p>
<button class="button-parent"><span class="button-child">もっと見る</span></button>
<button class="button-parent"><span class="button-child style01">もっと見る</span></button>
<button class="button-parent"><span class="button-child style02">もっと見る</span></button>
<button class="button-parent"><span class="button-child style03">もっと見る</span></button>

<p>transform指定なし → translate → scale → rotate</p>
<button class="button-parent"><span class="button-child">もっと見る</span></button>
<button class="button-parent"><span class="button-child style01">もっと見る</span></button>
<button class="button-parent"><span class="button-child style04">もっと見る</span></button>
<button class="button-parent"><span class="button-child style05">もっと見る</span></button>

CSSでボタンの矢印を再現します。疑似要素のborder-topとborder-rightをtransformで移動・回転・縮小します。変化がわかりやすいように1つずつ順番に指定していきます。

.button-parent {
  font-size: 1.8rem;
  color: #fff;
  display: block;
  width: 100%;
  max-width: 200px;
  margin: 0 auto 1em;
  padding: 10px 20px;
  background: #62aac8;
  text-align: center;
  border: unset;
  appearance: none;
  cursor: pointer;
}

.button-child {
  position: relative;
  padding-right: 20px;
}

.button-child::before {
  content: '';
  position: absolute;
  top: 50%;
  right: 0;
  display: inline-block;
  width: 10px;
  height: 10px;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
}

.style01::before {
  transform: translateY(-50%);
}

.style02::before {
  transform: translateY(-50%) rotate(45deg);
}

.style03::before {
  transform: translateY(-50%) rotate(45deg) scaleY(0.6);
}

.style04::before {
  transform: translateY(-50%) scaleY(0.6);
}

.style05::before {
  transform: translateY(-50%) scaleY(0.6) rotate(45deg);
}

transformプロパティをtranslate → rotate → scaleの順番に指定していくと矢印が崩れるのがわかります。translate → scale → rotateの順番に指定すると意図した矢印になります。

関連記事

2022.07.17

HTML・CSS

Google Fontsの読み込みをDNSプリフェッチで最適化

DNSプリフェッチを利用すると、外部ドメイン名(ホスト名)の名前解決(DNSルックアップ)を事前に強制できます。 WEBページ表示時ブラウザが外部ドメインにアク…

2025.05.08

HTML・CSS

text-decorationを利用した文字の下線

text-decorationプロパティを利用して複数行の文字に下線を引きます。複数行に対応させるため、inline要素に適用します。デモページはこちら 以下の…

2020.10.19

HTML・CSS

コーディング時のIE11のバグ

コーディング時に発生したIE11のバグのまとめです。主にflexboxで発生します。 ■ display: flexの要素にmin-heightを指定した場合、…

2025.07.01

HTML・CSS

mask-imageを利用したグラデーションの点線

CSSのmask-imageプロパティを利用して、グラデーションの点線を作成します。デモページはこちら グラデーションの点線は疑似要素にmask-imageプロ…

2020.09.18

HTML・CSS

YouTubeの動画からサムネイル画像を取得

YouTubeの動画からサムネイル画像を取得します。取得には半角英数11桁の動画IDが必要です。サムネイル画像は下記の通りサイズ別に分かれていますが、最大サイズ…

上に戻る