IE11 translateに「vw」を指定した数値が正しく反映されない

以前のブログはこちら

広告

こんにちは。ましじめの田村です。

私が執筆した著書、『現場のプロから学ぶ CSSコーディングバイブル』は、Web制作の現場で役立つテクニックやノウハウをまとめています。
興味を持っていただけた方は、ぜひご覧ください。
https://amzn.to/3A8kNHC

このリンクは Amazon のアフィリエイトプログラムを通じて設定されています。

IE11の作業メモです。
端から端まで動かすという次のようなアニメーションをCSSのtransformで作成したところIE11で正しく動かないという症状が発生。

  .car {
    animation: carMove 10s ease-in-out alternate infinite;
  }

  @keyframes carMove {
    0% {
      transform: translateX(-100px);
    }

    100% {
      transform: translateX(110vw);
    }
  }

どうやら110vwの数値が想定より大きく取られているようです。
確認したところvwの値を%にするとよさそうでした。

.carクラス`にIE用の記述を準備して解決。

  .car {
    animation: carMove 10s ease-in-out alternate infinite;

  + [data-browser="ie"] &{
  +  animation: carMoveIe 10s ease-in-out alternate infinite;
  + }
  }

  @keyframes carMove {
    0% {
      transform: translateX(-100px);
    }

    100% {
     transform: translateX(110vw);
    }
  }

   @keyframes carMoveIe {
    0% {
      transform: translateX(-100px);
    }

    100% {
      transform: translateX(110%);
    }
  }

IE11のサポート状況
https://caniuse.com/#feat=viewport-units
https://caniuse.com/#search=translateX


関連するタグ

この記事を書いた人

たむら しょうご

HTML&CSSコーダー

ウェブアクセシビリティ対応、フロントエンド開発、CMSを利用したウェブサイト制作を担当しています。
趣味はガーデニングです。

ましじめのスキルが必要ですか?

遠慮なくご相談ください。我々はあなたのプロジェクトに最善を尽くし、あなたのウェブサイトの制作を強力にサポートいたします。

お問い合わせはこちらから