youtubeやgooglemapなどiframeコンテンツを埋め込む際、サイズの指定にpxしか出来ない場合が多いですよね。 クロスデバイスを想定したレスポンシブなコーディングが主流になった現在、絶対値でのサイズ指定は自殺行為です。多くの場合、はみ出るか途切れます。そんな悲劇を避けるちょっとしたスタイリングの紹介です。
はみ出さないフレキシブルなiframeのCSS
例えばこんなgooglemapがあります。
サイズは600x450です。これをスマフォなどの一部環境で見ると要素からはみ出ますね。
こいつをdivでくくり、適当にクラスを付けてやります。
<div class="iframe">〜googlemapコード</div>
そのクラスを付けたdivのheightを0にしてpadding-topで%単位で高さを調節します。
16:9の割合でフレキシブルにしたいなら9/16=0.5625→56.25%となります。
divにposition:relativeがかかっているので、子のiframeにposition:absoluteと指定することでdivの位置から100%広がります。
.iframe { position: relative; height: 0; padding-top: 56.25%; } .iframe iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
表示してみる
GoogleMap
YouTube
- 関連記事
-
-
Schema.org BlogPostingで”datePublished”と”image”が必須になった模様 2015/07/19
-
FC2ブログテンプレートに表示される広告を非表示にする方法 2015/06/29
-
iframeをフレキシブルに 2015/05/31
-
style要素にはscoped属性をつけるといいかもしれません 2015/04/18
-
inline-blockで生じる隙間の原因と対処法 2015/04/17
-