ウェブレスポンシブレイアウトにおけるiframe適応の方法

ウェブレスポンシブレイアウトにおけるiframe適応の方法

問題<br />レスポンシブ レイアウトでは、iframe 要素に注意する必要があります。iframe 要素の width 属性と height 属性は、その幅と高さを設定しますが、包含ブロックの幅または高さが iframe の幅または高さよりも小さい場合、iframe 要素はオーバーフローします。

このようなオーバーフローした iframe はページのレイアウトを破壊します。 iframe 要素をレスポンシブにする方法も見つかると思いますので、お楽しみに。

回避策
iframe 要素自体は、その幅が js 経由で明示的に設定されない限り、伸縮できません。ただし、iframe を iframe-container 要素でラップし、iframe-container 要素の幅を包含ブロックの幅に合わせて、iframe のアスペクト比に応じて iframe-container 要素の padding-bottom パーセンテージを設定することができます。

実際、この方法の本質は、iframe-container 要素の padding-bottom 属性を設定することにあります。この属性を設定する目的は、要素の高さを偽装して設定することです。 padding-bottom のパーセンテージ設定は、親要素の幅を基準にするためです。height 属性にパーセンテージを設定すると、親要素の高さを基準に設定されます。通常、親要素の高さの値にはデフォルトの auto を使用するため、子要素の高さも 0 になります。そのため、padding-bottom にのみ属性を設定できます。この方法では、iframe 要素が iframe コンテナーを埋めるようにします。

コードをコピー
コードは次のとおりです。

。包む{
幅: 400ピクセル;
マージン: 自動;
境界線: 5px 実線緑黄色;
}
.iframe コンテナ{
高さ: 0;
パディングボトム: 97.6%;
位置: 相対的;
}
.iframe-コンテナ iframe{
位置: 絶対;
左: 0;
上: 0;
幅: 100%;
高さ: 100%;
}
@media スクリーンと (最大幅: 400px) {
。包む{
幅: 300ピクセル;
}
}


コードをコピー
コードは次のとおりです。

<div class="wrap">
<div class="iframe-container">
<iframe height=498 width=510 src="<a href="http://player.youku.com/embed/XOTE0MjkyODgw">http://player.youku.com/embed/XOTE0MjkyODgw</a>" frameborder=0 allowfullscreen></iframe>
</div>
</div>

結果にはステータスが表示されます:

ビューポートの幅が 400 ピクセルより大きい場合:

ビューポートの幅が 400 ピクセル未満の場合:

まとめ<br />以上がこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に少しでもお役に立てれば幸いです。ご質問があれば、メッセージを残してご連絡ください。

<<:  JS 1次元配列を3次元配列に変換する例

>>:  ウェブページにコンテンツが多すぎる場合に、下から上へ素早く戻る方法

推薦する

Jenkins を使用した Vue プロジェクトのワンクリック パッケージングと公開の実装

目次Jenkinsのインストールインストールポート番号を変更します(デフォルトのポートは8080です...

Angularコンポーネント投影の詳細な説明

目次概要1. 簡単な例1.サブコンポーネントの<ng-content>ディレクティブを使...

jQueryのanimateアニメーションメソッドとアニメーションキューイング問題の解決方法の詳しい説明

目次animate() アニメーションメソッドアニメーションキューイングdelay() メソッドアニ...

MySQL の文字セット utf8 を utf8mb4 に変更する方法

MySQL 5.5 の場合、文字セットが設定されていない場合、MySQL のデフォルトの文字セットは...

Vueで親子コンポーネント通信を実装する方法

目次1. 親コンポーネントと子コンポーネントの関係2. 小道具3. $エミット4. $親V. 結論 ...

VirtualBox を使用して Linux クラスターをシミュレートする方法

1. ホストMacbookにHOSTをセットアップする前回のドキュメントでは仮想マシンの静的 IP ...

WeChatアプレットがログインインターフェースを実装

WeChatアプレットのログインインターフェースは参考までに実装されています。具体的な内容は次のとお...

Alibaba Cloud サーバーの購入とインストール方法

1. サーバーを購入するこの例では、購入したサーバーはAlibaba Cloudです。大学生はAli...

JavaScript で配列の変更を監視する方法

序文以前、defineProperty を紹介したとき、オブジェクトの変更のみを監視でき、配列の変更...

Linux でハイパースレッディング技術を動的に有効/無効にする方法の詳細な説明

序文Intel のハイパースレッディング テクノロジーにより、1 つの物理コア上で 2 つのスレッド...

JavaScript における変数と関数の昇格の詳細な例

js 実行字句解析フェーズ: 形式パラメータ解析、変数宣言解析、関数宣言解析の 3 つの部分が含まれ...

Vue が Web オンラインチャット機能を実現

この記事では、Webオンラインチャットを実装するためのVueの具体的なコードを参考までに紹介します。...

証明書を使用してリモート Docker サーバーに接続する方法

目次1. スクリプトを使用してDockerのTLSを暗号化する2. Dockerの設定を変更してリモ...

Linux lsof コマンドの使用方法の詳細な説明

lsof (開いているファイルのリスト) は、プロセスによって開かれたファイルを表示するツールです。...