このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

CSS translateX() 関数

Baseline 広く利用可能

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年7月以降、すべてのブラウザーで利用可能です。

translateX()CSS関数で、要素を二次元平面上の水平方向で再配置します。結果は <transform-function> データ型になります。

試してみましょう

transform: translateX(0);
transform: translateX(42px);
transform: translateX(-2.1rem);
transform: translateX(3ch);
<section id="default-example">
  <img
    class="transition-all"
    id="static-element"
    src="/shared-assets/images/examples/firefox-logo.svg"
    width="200" />
  <img
    class="transition-all"
    id="example-element"
    src="/shared-assets/images/examples/firefox-logo.svg"
    width="200" />
</section>
#static-element {
  opacity: 0.4;
  position: absolute;
}

#example-element {
  position: absolute;
}

メモ: translateX(tx)translate(tx, 0) または translate3d(tx, 0, 0) と等価です。

構文

css
/* <length-percentage> 値 */
transform: translateX(200px);
transform: translateX(50%);

<length-percentage>

変換ベクトルの横座標を表す <length> または <percentage> です。直交座標系では X 座標の移動量を表します。パーセント値は transform-box プロパティで定義される参照ボックスの幅からの相対値です。

直交座標系 (ℝ^2) 同次座標系 (ℝℙ^2) 直交座標系 (ℝ^3) 同次座標系 (ℝℙ^3)

平行移動は ℝ^2 の線形変換ではないので、直交座標行列を使用して表すことはできません。

(10t010001)\left( \begin{array}{ccc} 1 & 0 & t \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{array} \right)
(10t010001)\left( \begin{array}{ccc} 1 & 0 & t \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{array} \right)
(100t010000100001)\left( \begin{array}{cccc} 1 & 0 & 0 & t \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{array} \right)
[1 0 0 1 t 0]

形式文法

<translateX()> = 
translateX( <length-percentage> )

<length-percentage> =
<length> |
<percentage>

HTML

html
<div>静的</div>
<div class="moved">移動</div>
<div>静的</div>

CSS

css
div {
  width: 60px;
  height: 60px;
  background-color: skyblue;
}

.moved {
  transform: translateX(10px); /* translate(10px) と等価 */
  background-color: pink;
}

結果

仕様書

仕様書
CSS Transforms Module Level 1
# funcdef-transform-translatex

ブラウザーの互換性

関連情報