コーディングで注意!IE9とモダンブラウザのフォームレイアウトの違いと解決策

時給1000円〜高収入翻訳学生バイト・インターン募集! 急募

シェアする

ウェブサイトや何かのアプリケーションを開発しているときに「Internet Explorer(通称:IE)」の対応を求められるときがあります。Internet Explorerは年齢層が高めの方や、主婦の方などが使用しているために、そのような属性の方が利用するサービスを開発している場合はマストです。

自社メディアを運営している会社の方もですが、クライアントの案件をしている受託会社・制作会社の方はほぼ確実に苦しんだことがあるかと思います。

今回は、フロントエンドのエンジニアを苦しめているIEの中でも私のサービスで見つかったIE9とGoogle Chrome、safari、Firefoxなどのモダンブラウザでのレイアウトの違いと、formタグのブラウザごとの認識でこういう違いがあるんだというハマったポイントをご紹介します。

エンジニアは年収の高い仕事です。

就職・転職・起業・フリーランス・起業・自宅で稼ぐ金額を増やしたい、スキルアップして年収・給与を2倍にあげたいという方は絶対チェックしてくださいね。

▼当サイトで申込みが多いプログラミングスクール・教室はこちら!

【1位】WebCamp PRO (ウェブキャンププロ)【就職転職保証・返金保証・年収大幅アップ】

【2位】WebCamp(ウェブキャンプ)【5ヶ月連続!2位】

【3位】CodeCamp(コードキャンプ)【自宅で効率的にスキルアップ・年収増】

ほかにも多くのプログラミングスクールがありますが、現役エンジニアが利用して間違いないスクールを厳選しています。

実際にWebCampに通って上場企業へ転職、年収が上がったエンジニアの話 → プログラミング未経験からエンジニアへ

IE9のフォームのレイアウトはよろしくやってくれない

例えば下記のようなフォームを作成したい場合があります。

form

名前、かな、メールアドレスなどを入力した後に、登録ボタンと、戻るボタンがある場合です。修正するボタンでは、前のページに戻ったときに入力した値が消えてしまうのは面倒なので、入力した値を引き継いだままに前のページに戻りたいですよね。その場合にformタグでくくる必要があります。

しかし、登録、修正ボタンともにformタグでくくり、postします。その場合に、モダンブラウザでの認識の仕方と、IE9でのフォームのレイアウトの違いがあります。

IE9での補完の違いによってレイアウトが崩れてしまう、具体的にいうと登録ボタンが上で、修正ボタンが段落ちします。ここで、元のソースコード、モダンブラウザでのformタグの認識、IE9でのformタグの認識と分けて紹介します。

レイアウトの関係上特殊なマークアップをあえてしてみた場合

元のマークアップ。少々特殊ですが、上記のようなレイアウトで、formタグを二つ含む場合、formタグを使って、JavaScriptを使用しない場合、特殊なDOM構造にする必要がありますよね。レイアウトを実現するために必要なdivタグの中に</form>があるのは非常に違和感があります。

続いてモダンブラウザでのDOM構造はどのようになっているのかみてみましょう。

モダンブラウザは良きように閉じタグが認識される

こちらはモダンブラウザのformタグの構造になっています。モダンブラウザでは勝手にformタグでformタグがラッピングされるような構造として補完されています。formタグの入れ子構造になっていても登録、修正の挙動に問題がないのはモダンブラウザだからでしょうか。

これがモダンブラウザではformタグで全体を囲うように補完されているので、本来formタグの入れ子構造はあまりよくありませんが、挙動に問題はないようです。
しかし、これがIEでは違う補完のされ方になります。これが今回ボタンのレイアウトが崩れてしまう要因になっていました。

IE9ではformタグの閉じタグの認識が異なる

上記のフォームがIE9では下記のようにformタグと、<div class="u-clearfix c-button-column-2">が勝手に補強されているのです。その結果u-clearfixによって横長並びになっていたボタンが上下に崩れてしまうという問題が発生します。

formタグの入れ子構造のマークアップになってしまっているモダンブラウザの方も、本来意図しているマークアップではないですが、モダンブラウザ(スマートフォン端末を含む)では、formタグの入れ子構造になっていても登録、修正が行えています。なのでモダンブラウザだけでデバッグをしているとIEのレイアウト崩れに気づきません。

IEだとなんで逆にここまで高性能な補完のされ方になるのか気になるところですが、それが仇となってレイアウトが崩れてしまいます。ですからformタグの入れ子構造を変えてあげなければなりません。

この場合のformタグの構造の解決策1

少しハック的な方法になってしまいますが、formタグのマークアップの方法を変更して、JavaScriptを用いて、入力している値を登録ボタンを押した時に一緒に値を送るようにします。

このコーディングの組み方だとformタグの上に入力するためのinputタグがある場合、その値がうまくpostされません。なので、その値をJavaScriptでhiddenにしているinputタグのvalueに入れてあげてpostして解決しました。レイアウトを実現して、戻った時にも値を引き継いでユーザーに負荷をかけないためには裏側で細かい配慮が必要ですね。

IE対応は大変だけど面白い

開発しているサービスでは、IEの利用比率が高く、全体の20%程度のユーザーが使っていることもあって対応することになりました。IEでデバックするのは大変なのでモダンブラウザで開発しているという方が多いかと思いますが、最終的にリリース前に確認のために見てみたら、愕然とした。。ということもあるかと思います。

あらかじめブラウザごとの違いを認識しながらコーディングをしておくと最終的に修正する項目が少なくて済みますので、自分の中でIE対策のTipsを貯めて置きたいですよね。

今回はformタグの例を元に、モダンブラウザとIEでのレイアウトや補完されるDOMの違いについてご紹介しました。

プログラミングやコーディングで悩んだときに相談できるサイトについてこちらにまとめてみました。
1日悩んでしまうのであれば、自分で調べつつ質問をしておいて回答がきたら参考にするというのも手です。
特にクライアントワークだと時間も限られているので、おすすめします。

プログラミングスクール・教室のおすすめ・学生・料金が安い・オンライン・転職・評判まとめ

ビットコイン・仮想通貨取引所オススメ

本サイトは、学生・主婦・フリーランス・起業をしたい方・自由に働きたい方向けに、 の料金・カリキュラム・受講内容・どういう卒業生がいるのか、どういう会社が運営してるのかなどの情報を掲載するサイトを作成しています。

  • 「プログラミングスクール・教室って何?」
  • 「どのプログラミングスクール・教室なら安心して通えるの?」
  • 「料金っていくらくらいなの?」

などの疑問にもお答えしていきます!

プログラミングスクール・教室を利用するのが初めての方

本サイトは“プログラミングスクール・教室を利用するのが初めての方” を想定して作られており、学生・主婦・フリーランス・起業をしたい方・自由に働きたい方などプログラミングスクール・教室の利用経験がある方でも信頼できる情報を掲載しています! ※時間がなく全文の記事が読めない!という方は、当サイトで最もおすすめのプログラミングスクール・教室である 「WebCamp pro 」に登録してみましょう!(オススメ!)

絶対に失敗しない!プログラミングスクール・教室を選ぶ時の4つのポイント!

プログラミングスクール・教室を選ぶ上で重要なポイントは、以下4点になります。

  • 授業料金
  • カリキュラム・授業の内容
  • 就職・転職・起業・フリーランスに使えるかどうか
  • 運営会社がどこか

授業料金の内容

「プログラミングスクール・教室を利用する際の授業料金」は重要な点です。 ”数万ぐらい”と思うかもしれませんが、年間10万以上変わってくることもあります! 最初から、料金が安いプログラミングスクール・教室を利用していれば、“損をせず”プログラミングを覚えることができますよ。

サービス名 金額
WebCamp pro  432,000円
CodeCamp(コードキャンプ)   50,000 ~ 300,000円
techboost(テックブースト)   107,784円
  • 料金が安いのにカリキュラムが充実していて、エンジニアとして転職や就職・起業に役立つ 「techboost(テックブースト)」がおすすめです!

カリキュラム・授業内容・先生の充実度

プログラミングスクール・教室を利用するなら「カリキュラム・授業内容・先生の充実度」も大切です。 エンジニアになるために効率的でかつ実践を踏まえたプログラミング学習ができるのが重要です。 先生もマンツーマンで教えて欲しいですよね。

ほとんどのプログラミングスクール・教室は、 マンツーマンのプログラミングスクールがなく、カリキュラムもそこまで変わらないけど料金が高いこともあります。 マンツーマンで初心者だけどしっかり教えて欲しいという方はマンツーマンのプログラミングスクール・教室がおすすめです。

運営している企業の安定性

運営している企業の安定性や安心は大切です。プログラミングスクール・教室にせっかく通ったのに売り上げが伸びておらず、 倒産してしまったということになっては大変です。 上場企業のグループ会社が運営しており、無料体験レッスンがオンラインで受講できるプログラミングスクール・教室が良いです。

就職・転職・起業・フリーランスに使えるかどうか

プログラミングスクール・教室は、結局その後のキャリアをどのように構築していくかが大切です。 学生・主婦・フリーランス・起業をしたい方・自由に働きたい方が主に利用しており、プログラミングは今後必須なスキルとも言われています。 エンジニアの給料は他の職種よりも非常に高く、平均で150−200万程度高くなっています。

この先のキャリアを考えて利用するなら、就職・転職保証なり何かの保証が付いている会社は安心です。

  • 就職・転職保証付のプログラミングスクール・教室を選ぶなら「WebCamp pro

一般的にプログラミングスクール・教室の無料体験レッスンの申し込みは2~3社申し込みをするのが普通 です。 これからご紹介するプログラミングスクール・教室の中から最低でも2~3社は申し込みはしておきましょう!無料で申し込みできます!)

【厳選】プログラミングスクール・教室のおすすめランキング

業界初転職保証つきプログラミングスクール・教室 WebCamp Pro(ウェブキャンププロ)

オススメのポイント

  • 3ヶ月の学習期間と就職・転職期間を設けて確実に次のステップへ
  • 98%が自分の次のキャリアに進めている
  • 今プログラミングで必要とされているRuby on Railsの学習に集中している
  • 毎月3名に10万円の割引チャンス!
  • 受講完了後、3ヶ月以内に転職・就職できない場合は ”全額返金”

初心者におすすめしたいプログラミングスクール・教室は「WebCamp pro 」です。

登録は2分!体験レッスンの無料申し込みができます!

公式サイトへ

上場企業が運営のプログラミングスクール・教室 TechAcademy(テックアカデミー)

オススメのポイント

  • 上場企業のグループ会社が運営、安心感のある運営
  • オンラインで受講できるので、どこにいてもインターネットがあれば利用可能
  • マンツーマンレッスンなので他の人がおらず、周りの目を気にせず集中できる!
  • 受講中のサービスをポートフォリオとして登録し、就職・転職に活かせる!
  • 月々4500円から利用可能!

交通費や時間をかけずに勉強できるプログラミングスクール・教室は「TechAcademy(テックアカデミー) 」です。

登録は2分!体験レッスンの無料申し込みができます!

公式サイトへ

ブロックチェーン・AI・IoTのプログラミングスクール・教室 Tech boost(テックブースト)

オススメのポイント

  • 業界初のブロックチェーン・AI・IoTのプログラミングスクール
  • 専属のメンターがついてくれるので、アプリ開発をやりきることができる
  • 月額99,800円で業界最安値レベルの受講料金
  • 紹介割引、学生割引、友達割引も充実。さらに安く受講できます!
  • キャリアアドバイザーのキャリア相談で就職・転職に活かせる!

流行している技術をいち早く勉強したいなら、プログラミングスクール・教室は「techboost(テックブースト)」です。

登録は2分!体験レッスンの無料申し込みができます!

公式サイトへ

シェアする

この記事が気に入ったら
いいね!しよう

Rplayの最新情報をお届けします

TwitterでRplayをフォローする