iframe要素のレスポンシブWebデザイン対応

レスポンシブWebデザインでiframe要素のサイズ比率を維持した状態で縮小させる方法を紹介します。
(1) iframe要素にdiv要素(親)を囲む
(2) 親、iframe要素にpositionプロパティを指定、親にはrelative、iframe要素にはabsolute
(3) 親の要素にpadding-topプロパティ(bottomでも可)に画面比率を算出して指定
※画面比率の算出方法
16:9の場合(横幅は100%)
100 / 16 9 = 56.25%
4:3の場合(横幅は100%)
100 / 4 3 = 75%
デモ(リンク)
※デモは4:3の場合です。
CSS
.iframe-content {
position: relative;
width: 100%;
padding: 75% 0 0 0;
}
.iframe-content iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
HTML
<div class="iframe-content"> <iframe src="http://www.youtube.com/embed/xTjejvnBJfU?rel=0" frameborder="0"></iframe> </div>
・複数カラムでの表示の場合
CSS
.iframe-content-wrap {
display: -webkit-box;
display: box;
}
.iframe-content-block {
-webkit-box-flex: 1;
box-flex: 1;
}
.iframe-content {
position: relative;
width: 100%;
padding: 75% 0 0 0;
}
.iframe-content iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
HTML
<div class="iframe-content-wrap">
<div class="iframe-content-block">
<div class="iframe-content">
<iframe src="http://www.youtube.com/embed/xTjejvnBJfU?rel=0" frameborder="0"></iframe>
</div>
</div>
<div class="iframe-content-block">
<div class="iframe-content">
<iframe src="http://www.youtube.com/embed/xTjejvnBJfU?rel=0" frameborder="0"></iframe>
</div>
</div>
</div>


