使用Bootstrap响应iframe

时间:2014-08-10 11:18:37

标签: twitter-bootstrap iframe

我正在使用Bootstrap。

我的文字包含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>

这是动态数据。我怎样才能使其响应?

6 个答案:

答案 0 :(得分:205)

选项1

使用Bootstrap 3.2,您可以将每个iframe包装在您选择的response-embed包装中:

http://getbootstrap.com/components/#responsive-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>

答案 1 :(得分:20)

请检查一下,我希望能提供帮助

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

答案 2 :(得分:13)

对我来说最有效的最佳解决方案是我在下面的链接中找到的解决方案: https://bootstrapmaster.com/implement-responsive-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>

就是这样!现在,您可以在自己的网站上使用自适应视频。

答案 3 :(得分:9)

因此,youtube会按如下方式提供iframe代码:

read_num = lambda{|i| puts "Enter number #{i}"; gets.chomp.to_i}
sum = 3.times.map(&read_num).reduce(:+)
puts sum

就我而言,我只是将其改为宽度=&#34; 100%&#34;剩下的就是原样。它不是最优雅的解决方案(毕竟,在不同的设备中,你会得到奇怪的比例)但视频本身不会变形,只是框架。

答案 4 :(得分:4)

选项3

更新当前的iframe

$("iframe").wrap('<div class="embed-responsive embed-responsive-16by9"/>');
$("iframe").addClass('embed-responsive-item');

答案 5 :(得分:0)

2020年8月工作

使用此

<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>

使用一种长宽比

<div class="embed-responsive embed-responsive-4by3">
  <iframe class="embed-responsive-item" src="…"></iframe>
</div>

在iframe使用选项内

 <iframe class="embed-responsive-item" src="..."
  frameborder="0"
    style="
      overflow: hidden;
      overflow-x: hidden;
      overflow-y: hidden;
      height: 100%;
      width: 100%;
      position: absolute;
      top: 0px;
      left: 0px;
      right: 0px;
      bottom: 0px;
    "
    height="100%"
    width="100%"
  ></iframe>