ウェブレスポンシブレイアウトにおける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次元配列に変換する例

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

推薦する

Dockerfileを使用してDockerイメージを構築する

目次Dockerfileを使用してDockerイメージを構築する1. Dockerfile とは何で...

ウェブページで任意のフォントを使用する実践的な操作とデモ

以前、「Web ページにシステムに組み込まれていないフォントを埋め込む」という研究をしたことがありま...

Vueライフサイクルカメラの8つのフック関数

目次1. beforeCreateとcreated関数2. beforeMountとmount関数3...

フォームアクションとonSubmitの例

まず、action はフォームの属性です。HTML5 では必須の属性値として定義されています。onS...

MySQL 8.0.13 で日付を 0000-00-00 00:00:00 に設定すると発生する問題を解決する

データベース操作を学び始めたばかりです。今日、データを保存していたところ、エラーが発生していることに...

CSSはスクロールを許可しながらスクロールバーを非表示にするためにオーバーフローを設定します

CSS は、スクロールを許可しながらスクロール バーを非表示にするために Overflow を設定し...

MySQLがOracleのnvlと同様の機能を持つことができるかどうかについての簡単な議論

isnullの代わりにifnullを使用するisnull は、null かどうかを判断するために使用...

CSSの一般的なプロパティ

CSS の背景: background:#00ffee; //背景色を設定するbackground-...

MySQL の自動増分主キーに関する詳細な説明

目次特徴保存戦略自己増加の決定自動増分値の変更実行プロセス問題点自動増分ロックロック戦略バッチ挿入の...

MySQL の結合インデックスと左端一致原則の詳細な説明

序文これまでインターネットでMySQLジョイントインデックスの最左接頭辞マッチングに関する記事をたく...

vue+tsは要素のマウスドラッグの効果を実現します

この記事の例では、要素のマウスドラッグ効果を実現するためのvue+tsの具体的なコードを参考までに共...

JenkinsのLinuxインストール手順と各種問題解決(ページアクセス初期化パスワード)

1. Java環境jdk1.8を準備するJavaがインストールされているかどうかを確認します。イン...

MySQL の group by と having の詳細な説明

GROUP BY 構文を使用すると、指定されたデータ列の各メンバーに従ってクエリ結果をグループ化して...

TypeScriptジェネリックの使用

目次1. 使いやすい2. 関数内でジェネリックを使用する3. クラス内でジェネリックを使用する4. ...