Bootstrapでの指定方法
Bootstrap4でiframeをレスポンシブ化する際、普通にCSSで指定していたのですが、ちゃんと専用のクラスが用意されていたのでそちらを使うことにしました。
HTML<div class="embed-responsive embed-responsive-16by9">
<iframe class="embed-responsive-item" src="読み込みファイル" frameborder="0" style="border:0" allowfullscreen></iframe>
</div>
まず、iframeを<div>で囲みます。
その<div>タグに「embed-responsive」と「embed-responsive-16by9」のクラスを付与します。
次にiframeに対して「embed-responsive-item」というクラスを付与するだけでレスポンシブ化されます。
以下で、通常のCSSとBootstrap使用時とを比べています。
See the Pen Bootstrap4 iframe responsive by AlanSmithee21 (@alansmithee21) on CodePen.
別ウィンドウはこちらdivタグの「embed-responsive-16by9」クラスとは?
「embed-responsive-16by9」でアスペクト比を指定できます。
用意されているのは4つ。
HTML<!-- 21:9 aspect ratio -->
<div class="embed-responsive embed-responsive-21by9">
<iframe class="embed-responsive-item" src="..."></iframe>
</div>
<!-- 16:9 aspect ratio -->
<div class="embed-responsive embed-responsive-16by9">
<iframe class="embed-responsive-item" src="..."></iframe>
</div>
<!-- 4:3 aspect ratio -->
<div class="embed-responsive embed-responsive-4by3">
<iframe class="embed-responsive-item" src="..."></iframe>
</div>
<!-- 1:1 aspect ratio -->
<div class="embed-responsive embed-responsive-1by1">
<iframe class="embed-responsive-item" src="..."></iframe>
</div>
おまけ:Bootstrap4を使わずに通常のCSSで指定する方法
HTML<div class="gmap-css-responsive">
<iframe src="読み込みファイル" frameborder="0" style="border:0" allowfullscreen></iframe>
</div>
CSS
.gmap-css-responsive {
height: 0;
overflow: hidden;
position: relative;
padding-bottom: 56.25%;
}
.gmap-css-responsive iframe {
position: absolute;
left: 0;
top: 0;
height: 100%;
width: 100%;
}