使用Bootstrap的响应式iframe
我正在使用Bootstrap。
我有一个文本,其中包含2或3embedded式video的内置页框。
这些数据是从数据库中提取的。
我如何使这些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>
这是一个dynamic数据。 我怎样才能使其响应?
选项1
使用Bootstrap 3.2,您可以将每个iframe包装在您select的响应embedded包装中:
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>
对我来说最好的解决scheme是我在下面的链接中find的: 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%; }
然后把你的embedded式video
<div class="responsive-video"> <iframe ></iframe> </div>
而已! 现在,您可以在您的网站上使用自适应video。
请检查一下,我希望这是帮助
<div class="row"> <iframe class="col-lg-12 col-md-12 col-sm-12" src="http://www.w3schools.com"> </iframe> </div>
选项3
更新当前的iframe
$("iframe").wrap('<div class="embed-responsive embed-responsive-16by9"/>'); $("iframe").addClass('embed-responsive-item');
所以,youtube发出如下iframe标签:
<iframe width="560" height="315" src="https://www.youtube.com/embed/2EIeUlvHAiM" frameborder="0" allowfullscreen></iframe>
在我的情况下,我只是把它改为宽=“100%”,剩下的就是这样。 这不是最优雅的解决scheme(毕竟,在不同的设备,你会得到奇怪的比例),但video本身并没有变形,只是框架。