質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

Q&A

解決済

1回答

10742閲覧

IE11だけtransformの適用結果が違う

aKusano

総合スコア3763

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

0グッド

0クリップ

投稿2018/07/25 13:57

編集2018/07/26 00:26

CSSでハンバーガーメニューを作っています。
クリックした時にjQueryでclassを適用し、それをトリガーとして
CSSアニメーションで×マークに変化させているのですが、
IE11だけ添付の画像のように×マークが崩れてしまいます。
イメージ説明

このような崩れ方をするのがIE11のバグのせいなのか、
何かコードの書き方がおかしいからなのか分からず困っております。
IE11でもChrome等と同じようなちゃんとした×の形に表示するにはどうしたらよいか、
どなたかご教授いただけないでしょうか?

よろしくお願い申し上げます。

HTML

1<li id="globalMenu" class="hdMenu_item global"> 2<button class="hdMenu_btn"> 3 <div class="ico"> 4 <span></span> 5 <span></span> 6 <span></span> 7 </div> 8 <div class="txt">MENU</div> 9</button> 10--省略-- 11</li>

CSS

1/*メニュー本体ボタンスタイル*/ 2.hdMenu_btn { 3 width: 60px; 4 height: 60px; 5 padding: 0; 6 margin: 0; 7 font-size: 10px; 8 line-height: 1; 9 cursor: pointer; 10} 11 12.hdMenu_btn .ico { 13 width: 25px; 14 height: 25px; 15 margin: 0 auto 5px; 16} 17 18.hdMenu_item.global .hdMenu_btn { 19 background: #7dc6c6; 20} 21 22.hdMenu_item.global .ico { 23 position: relative; 24 margin: 2px auto 2px; 25} 26 27.hdMenu_item.global .ico span { 28 position: absolute; 29 left: 0; 30 display: block; 31 width: 100%; 32 height: 2px; 33 background: #000000; 34 -webkit-transform-origin: center center; 35 -ms-transform-origin: center center; 36 transform-origin: center center; 37} 38 39.hdMenu_item.global .ico span:nth-child(1) { 40 top: 0; 41} 42 43.hdMenu_item.global .ico span:nth-child(2) { 44 top: 10px; 45} 46 47.hdMenu_item.global .ico span:nth-child(3) { 48 top: 20px; 49} 50 51/*アニメーション部分*/ 52.hdMenu_item.global .ico span:nth-of-type(1) { 53 animation: menu-bar01 .50s forwards; 54} 55@keyframes menu-bar01 { 56 0% {transform: translateY(10px) rotate(45deg);} 57 50% {transform: translateY(10px) rotate(0);} 58 100% {transform: translateY(0) rotate(0);} 59} 60.hdMenu_item.global .ico span:nth-of-type(2) { 61 transition: all .25s .25s; 62 opacity: 1; 63} 64.hdMenu_item.global .ico span:nth-of-type(3) { 65 animation: menu-bar03 .50s forwards; 66} 67@keyframes menu-bar03 { 68 0% {transform: translateY(-10px) rotate(-45deg);} 69 50% {transform: translateY(-10px) rotate(0);} 70 100% {transform: translateY(0) rotate(0);} 71} 72.hdMenu_item.global .is-active .ico span:nth-of-type(1) { 73 animation: active-menu-bar01 .50s forwards; 74} 75@keyframes active-menu-bar01 { 76 0% {transform: translateY(0) rotate(0);} 77 50% {transform: translateY(10px) rotate(0);} 78 100% {transform: translateY(10px) rotate(45deg);} 79} 80.hdMenu_item.global .is-active .ico span:nth-of-type(2) { 81 opacity: 0; 82} 83.hdMenu_item.global .is-active .ico span:nth-of-type(3) { 84 animation: active-menu-bar03 .50s forwards; 85} 86@keyframes active-menu-bar03 { 87 0% {transform: translateY(0) rotate(0);} 88 50% {transform: translateY(-10px) rotate(0);} 89 100% {transform: translateY(-10px) rotate(-45deg);} 90} 91

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

macaron_xxx

2018/07/26 01:53

提示いただいたコードにis-activeクラスをトグルするjavascriptを加えたもので実行しましたが、IE11にて✕が正常に表示されることを確認しました。提示いただいた箇所以外に問題がありそうですね。
aKusano

2018/07/26 02:24

ありがとうございます。こちらの知り合いにも同じことを指摘されました。現在どこが影響しているのか検証しているところですがまだ見つからず…。
guest

回答1

0

自己解決

すみません、自己解決しました。

そもそもこちらに質問投げた部分のコードはスマホレイアウトの分だけでして、
本来はその後にPC向けの記述が続いていたのですが長くなるので省略しておりました。
そしてキャプチャのような不具合が出ているのは実はPCレイアウトの時だけでした。

PCレイアウトの方で不具合が出ていた原因は、@mediaの中に@keyframeを書いていたことでした。
メディアクエリの中に@keyframeを書くと、IEは無効になってしまうバグがあるようです。
このブログにズバリ、原因と解決法が書かれておりました。

PCだけで不具合が出ていたことに気づいた時、かすかな記憶でそういえば@mediaの中に@keyframe
書くとなんか不具合があったような気がしたので検索してみたら、ズバリ出てきました。

というわけで、不具合の発生条件をちゃんと確認してなかったのが敗因ですね。。。
気をつけます。

投稿2018/07/26 03:26

aKusano

総合スコア3763

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問