ブートストラップを使用したレスポンシブiframe


100

ブートストラップを使用しています。

2つまたは3つのiframeベースの埋め込みビデオを含むテキストがあります。

このデータはデータベースからフェッチされます。

これらのiframeをレスポンシブにするにはどうすればよいですか?

コード例:

<div class="row">

   <div class="col-lg-12 col-md-12 col-sm-12">

     SOME TEXT SOME TEXT SOME TEXT SOME TEXT
     SOME TEXT SOME TEXT SOME TEXT SOME TEXT

     <iframe src="http://youtube.com/...."></iframe>

     SOME TEXT SOME TEXT SOME TEXT SOME TEXT
     SOME TEXT SOME TEXT SOME TEXT SOME TEXT

     <iframe src="http://youtube.com/...."></iframe>


     SOME TEXT SOME TEXT SOME TEXT SOME TEXT
     SOME TEXT SOME TEXT SOME TEXT SOME TEXT

     <iframe src="http://youtube.com/...."></iframe> 

   </div>

</div>

これは動的なデータです。どうすれば応答性を高めることができますか?



1
Bootstrapのバージョンを確認することをお勧めします。私は2つのオプションでこれに答えました。
クリスティーナ

回答:


215

オプション1

Bootstrap 3.2を使用すると、選択したレスポンシブ埋め込みラッパーで各iframeをラップできます。

http://getbootstrap.com/components/#sensitive-embed

<!-- 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>

オプション2

iframeをラップしたくない場合は、FluidVids https://github.com/toddmotto/fluidvidsを使用できます。こちらのデモをご覧ください:http : //toddmotto.com/labs/fluidvids/

   <!-- fluidvids.js -->
    <script src="js/fluidvids.js"></script>
    <script>
    fluidvids.init({
      selector: ['iframe'],
      players: ['www.youtube.com', 'player.vimeo.com']
    });
    </script>

2
の高さを下げることができませんiframe100%から80%クラスに変わりました.embed-responsive iframe。しかし、空のスペースを与えています。ビデオの後。このスペースを回避する方法。
SatyaTNV 2015

最後にこれは完全に動作します!タグの<p>Your browser does not appear to support iframes</p>間に必須を含めるのは良いことかもしれませんがiframe、それが最近でも関係があるのか​​どうか疑問に思っています...
svenevs 2016年

1
オプション1:ドキュメントのURLがgetbootstrap.com/docs/3.3/components/#sensitive-embedに
Alexander Schmidt

24

これをチェックしてください、それが役に立てば幸いです

<div class="row">
 <iframe class="col-lg-12 col-md-12 col-sm-12" src="http://www.w3schools.com">
 </iframe>
</div>

ありがとうございました!やっと実際に機能するシンプルなもの。
Fatimaezzahra Rarhibou 2018

13

私にとってうまくいった最善の解決策は、以下のリンクで見つけたものです:https : //bootstrapmaster.com/implement-sensitive-youtube-vimeo-embed-iframe-twitter-bootstrap-3/

このコードをメインのCSSファイルにコピーします。

.responsive-video {
    position: relative;
    padding-bottom: 56.25%;
    padding-top: 60px; overflow: hidden;
}

.responsive-video iframe,
.responsive-video object,
.responsive-video embed {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

埋め込み動画を

<div class="responsive-video">
    <iframe ></iframe>
</div>

それでおしまい!これで、サイトでレスポンシブビデオを使用できます。


1
padding-bottom: 56.25%;奇妙なものを作る
Emidomenge 2016

9

したがって、youtubeはiframeタグを次のように提供します。

<iframe width="560" height="315" src="https://www.youtube.com/embed/2EIeUlvHAiM" frameborder="0" allowfullscreen></iframe>

私の場合は、width = "100%"に変更し、残りはそのままにしました。これは最もエレガントなソリューションではありません(結局、さまざまなデバイスでは奇妙な比率になります)。しかし、ビデオ自体は変形されず、フレームのみが変形されます。


そのように反応しますか?もしそうなら、それはアスペクト比を維持しますか?
Csaba Toth

素敵でシンプル。私のために働いた!ありがとう!
Joe

私もうまくいきます。提案された高さ(あなたの場合は315)を維持しながら、幅を「100%」に変更します。責任を持ってスケーリングし、ブートストラップ列クラスでうまく機能します。
BAERUS

4

オプション3

現在のiframeを更新するには

$("iframe").wrap('<div class="embed-responsive embed-responsive-16by9"/>');
$("iframe").addClass('embed-responsive-item');
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.