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

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

推薦する

MySQLデータベースのマスタースレーブレプリケーションの長い遅延に対する解決策

序文MySQL マスター スレーブ レプリケーションの遅延は、業界では長年の問題となっています。遅延...

jsはショッピングカートの加算と減算、価格計算を実装します

この記事の例では、ショッピングカートの加算と減算、価格計算を実装するためのjsの具体的なコードを共有...

ウェブデザイナーが注意すべき 43 のウェブデザインの間違い

これはウェブサイトのユーザビリティに関する記事です。著者は自身の経験に基づいて、ウェブサイトのデザイ...

ウェブページレイアウトデザインのシンプルな原則

この記事では、Web ページ レイアウト デザインのいくつかの簡単な原則をまとめ、Web ページ デ...

動的および静的分離を実現する nginx のサンプルコード

1. nginxの動的と静的の分離の簡単な設定web1は静的サーバー、web2は動的サーバー、nod...

dockerでデプロイされたjenkinsでgitプログラムを実行する際の問題について

1. まず、gitを関連付けるときにエラーメッセージが報告されます: エラー: ビルドするリビジョン...

面接でよく聞かれる Vue 修飾子 13 個

目次1. 怠惰な2.トリム3.番号4.停止5. キャプチャ6.自分7.一度8.予防する9.ネイティブ...

MySQL Order By 複数フィールドのソートルールのコード例

事前に言っておく気まぐれですが、MySQL の order by sorting にどのようなルール...

メンテナンス可能なJSコードの書き方を教えます

目次保守可能なコードとは何ですか?コード規約1. 読みやすさ2. 変数と関数の命名3. 透過的な変数...

テーブルタグ(テーブル)詳細

<br />テーブルは、昔から誰もが使ってきたタグで、今も使われています。しかし、現在の...

Vue2は応答性を提供するためにprovide injectを実装しています

1. vue2 での従来の書き方 // 親コンポーネントは 'foo' を提供します...

Linux で Xfce デスクトップ環境を使用すべき 8 つの理由

いくつかの理由(好奇心も含む)から、数週間前に Linux デスクトップとして Xfce を使い始め...

JavaScript で円形カルーセルを実装する

この記事では、円形カルーセルを実装するためのJavaScriptの具体的なコードを参考までに紹介しま...

MySQL データベースの詳細な説明 (Ubuntu 14.0.4 LTS 64 ビットベース)

1. MySQLデータベースの構成と関連概念まず、MySQL はリレーショナル データベースである...

ノードイベントループとメッセージキューの分析

目次非同期とは何ですか?なぜ非同期性が必要なのでしょうか?非同期IOとは何ですか?イベントループとは...