<iframe>とはHTMLタグの種類の1つで、Webページ内に矩形の領域を作り、指定したURLを読み込んで表示するHTMLタグです。
今回は<iframe>を正しく使いこなすために知っておくべきポイントをご紹介します。
目次
<iframe>(インラインフレーム)とは、HTMLの要素(タグ)の1つです。
「アイフレーム」とも呼ばれ、Webページ内に別のWebページや画像、動画などのコンテンツを読み込んで表示することができます。
実はHTML4.01のときに<iframe>は非推奨のタグとなったことがあります。
しかし、YouTubeの動画埋め込みやWeb広告表示等多くのサイトで利用され、利便性が高かったこともあり、HTML5では非推奨が解除されました。
現在では自由に使うことができます。
<iframe>を使用する際に必要な主な属性をご紹介します。まず、下記が基本的な<iframe>のコードです。
<iframe>で読み込むコンテンツを「絶対パス」または「相対パス」で指定します。
<関連記事>
<iframe>はWebページ内に矩形の領域を作り、その内部に別のWebページ等のコンテンツを表示することができます。
その際に矩形の横幅や縦幅をwidth属性、height属性で指定する必要があります。
※CSSで指定することも可能です。
<iframe>では他にも様々な要素を使用することができます。
ここではその中でもよく使われる属性をご紹介します。
<iframe>で読み込むコンテンツがどのような内容かを記述します。
読み上げソフトなどを使用する場合、<iframe>内のコンテンツの中身は対象となりません。
そこで<iframe>のtitle属性を記述することで、そのコンテンツがどのような内容であるかを説明することができます。
<iframe>で読み込むコンテンツを制御するための属性となります。
読み込むコンテンツでどのような機能(動画の自動再生、フルスクリーン表示、マップ上でのユーザー情報の表示等)を許可するのかを記述することができます。
<iframe>はHTML内に別のHTMLを設置して表示することができます。
例えば、「index.html」内に別のHTML「iframe.html」を表示しようとする場合は以下のような使い方になります。
まずは「index.html」と「iframe.html」の2つのファイルを用意します。
次に「index.html」に<iframe>タグを使って「ifram.html」を読み込む記述をします。
[index.html]
<iframe>タグにはwidth属性とheight属性を使い、横幅と高さをそれぞれ300px、200pxに指定しました。
そしてsrc属性で読み込み先のファイル「iframe.html」を指定します。
これで「index.html」内の<iframe>タグ部分に矩形の領域ができ、その内側に「iframe.html」が表示されるようになります。
<iframe>へスタイルをする際には注意が必要です。
<iframe>の特徴の1つに元のファイルのスタイルをそのまま継承するというものがあります。
<iframe>は別ページを読み込んで表示するHTMLです。そのため読み込み先に反映されているスタイルの影響も受けます。
ただし、読み込み先のスタイルが反映されるのは<iframe>の内側のみです。
例えば上記の場合、「index.html」と「iframe.html」の違いが分かりやすいように、「iframe.html」にスタイルを追加しています。
元のファイルのスタイルを継承するということは、「iframe.html」で追加したスタイルを「index.html」の<iframe>タグ内で読み込んだコンテンツにも反映するということになるのです。
このとき、「iframe.html」で追加したスタイルは「index.html」自体に影響を与えることはありません。
そのため「iframe.html」で記述した<body>タグのスタイルは「index.html」の<body>タグには反映されないのです。
また、<iframe>タグの外枠に関しては、<iframe>タグを記述しているファイルのスタイルが反映されます。
例えば今回の例であれば、<iframe>タグの外枠を変更したい場合は、「index.html」のスタイルを変更する必要があるのです。
つまり上記の例でまとめると、
ということになるのです。
※ただし、JavaScript等を使うことで「index.html」で読み込んだスタイルを<iframe>タグ内に反映することも可能です。
<iframe>の開始タグと終了タグの間(<iframe>~<iframe>)には、<iframe>に対応していないブラウザで表示されるテキストを記述することができます。
YouTubeの動画をサイト上に設置して表示することができます。
動画ファイルを自分のサーバーにアップすることなくサイト上に動画を設置することができるため、サーバーの負担を軽減し、サイトの表示速度を上げることができます。
表示したいYouTubeの動画ページから埋め込みタグ(<iframe>タグ)を取得します。
現在多くのサイトで地図としてGoogleマップを表示させる方法が浸透しています。
無料で使え、自動で周辺の最新情報を更新してくれるなどメリットが多いからです。
現在のWebサイトの主流はレスポンシブ対応です。ブラウザの横幅に応じて、コンテンツのサイズを変更していく必要があります。
基本的に<iframe>はwidthとheightで設定された数値で表示されるため、そのままではレスポンシブに対応することができません。仮にwidthを100%に設定したとしても高さが固定の場合はアスペクト比が維持できないからです。
そこでCSSをうまく使い、<iframe>の縦横比をそのままにレスポンシブに対応させる方法をご紹介します。
例:<iframe>を横幅100%、横と縦のアスペクト比を16:9で表示したい場合
上記では分かりやすいように<div>タグにクラスを追加しました。
widthとheightは後ほどCSSで設定します。
まずはwidthを100%に設定します。
そして高さを0にし、代わりに余白(padding-bottom)で高さを設定します。このとき、padding-bottomに設定する数値は親要素の横幅に対する表示したい縦幅の比率となります。
今回の場合、横幅100%の横16に対して縦9で表示したいため、下記のように計算します。
(9 / 16) × 100(%) = 56.25(%)
position: absolute;を設定することで<iframe>を絶対配置します。
<div>タグにposition: relative;を設定したので、<div>タグが絶対配置の起点となります。
そして<iframe>タグのwidthとheightを100%にすることで<iframe>タグのサイズが<div>タグと同じサイズになります。
そのため「<div>タグのアスペクト比が維持される」=「<iframe>タグのアスペクト比が維持される」となります。
この方法をうまく使うことで、YouTube動画のアスペクト比を維持したままレスポンシブ対応できます。
結論から言ってしまうと<iframe>によるSEO効果はほぼありません。
<iframe>で読み込んだコンテンツは独立したページとして扱われます。
そのため<iframe>で読み込んだコンテンツは、そのページのコンテンツとして評価されません。
つまり<iframe>を多用したページというのは、見た目上は様々なコンテンツがあるページのように見えて、実際にはそのページ特有の情報があまりない低品質なページと評価されてしまいます。
今回は<iframe>の基本的な仕組みと使い方・使用例をご紹介しました。
Webサイトのコンテンツの品質を高め、SEO的にも評価されるWebサイトを作るためにも、HTMLタグの仕組みを理解し、正しく使っていきましょう。
ウェブサイトを運営していると、アクセスの急増やGoogleアップデートによる検索順位の影響で、サーバーやドメインの移管作業が必要な場合があり…
EC・通販サイト運営における売上アップを考えたとき、ECサイトそのもののリニューアルを行うのは有効な手段です。特にサイト作成から時間が経過し…
WordPressは、Webサイトを誰でも簡単に作ることができるCMS(コンテンツ・マネジメント・システム)です。そのWordPressの機…
メインビジュアルはWebサイトの顔と言える部分で、メインビジュアルの質が高いWebサイトは、サイト全体、さらにはサービスの質まで高い印象を与…
こんにちは、デジタルマーケティング研究所です。 ホームページ制作やリニューアルの際に、制作担当の方からよく聞かれる質問があります。 「うちの…
ワイヤーフレームとは、Web制作において「図面や設計図の役割」をするものです。 サイトを制作するためには、「どんな情報」を「どんなデザイン」…
あなたのサイトは、集客できていますか?各々の課題に沿ったSEOとユーザーに響くデザインを両立したサイト制作で、意識の高いターゲットをフロントへ呼び込みます。
Webマーケティングに関わる施策全般をワンストップで
ご提供します。
お気軽にご相談ください。
Webマーケティング最新ニュースのレポートや無料セミナーの先行案内が届く、お得なメルマガ配信中!