当我们网站想后台发布文章,而文章中带有视频,这个视频通常是采用 iframe 方式嵌入的。如下代码:
<iframe src="https://www.xxx.com" frameborder="0" allowfullscreen="allowfullscreen"></iframe>
如果在发布时清除了原来的格式,那么这个嵌入的视频也随之变得很小。那么到底有没有比较简单快捷的方法,让iframe嵌入的视频宽度和高度,达到一个正常的,或适应当前页面宽度高度的方法呢?
下面我们分析一下,如何解决这个问题。
有人说可以用css来设置,其宽度和高度为100%或其它数字。可是本站技术员实践过,宽度是可以自适应,能看到变化,可是高度怎么设置也不会变,如果宽度是100%而高度没有变化,那么视频在页面中就被拉扯变形了,这不就是反向调整优化吗!
有人说用 javascript 来进行控制,但是为什么要把简单的事情复杂化呢?
用下面这个方法,只用几行css样式就能够实现自适应,先来看下css样式代码,复制下面的css样式,放到网站使用的样式表文件里。
.video { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; } .video iframe, .video object, .video embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
然后我们在发布文章时,切换至 html 源代码模式,在视频标签,iframe,或object,或embed的上级html标签中(对比上面的css文件层级),加入class=”video”即可。
例如下面示例代码,上级标签是<p>,那么就在<p>标签里加入class=”video”:
<p class="video"> <iframe src="https://www.xxoo.com" frameborder="0" allowfullscreen="allowfullscreen"></iframe> </p>
刷新网站的样式文件及页面,发现变了。视频嵌入已经实现了宽高自适应。
虽然这样每次发布带视频的内容时,还是需要去写个 class=”video”,但比写死高度和宽度而造成响应式的网站,移动端视频就只能看到某一部分了要好很多。
成功实践后再回头看看起作用的css,那个 padding-bottom 为何是 56.25% 这个数字还是让小伙伴们懵圈,如果你把它去掉或改成其他数字,你会看到明显的高度变化。这是什么css计算原理在起作用呢?
自己可以调试一下,总之,能解决问题就行,本技术员也不知道怎么解释!
补充:如果内容页是全宽,如达到1920像素,那么视频的宽度也就随之变大,但视频实际尺寸只有1200像素,这明显超过视频原有尺寸,这时候画面就会变得失真模糊,那么这种情况下我们就要对 video 样式加以修改调整,具体调整如下:
.video { position: relative; padding-bottom: 36.25%; height: 0; overflow: hidden; max-width: 640px; max-height: 360px; margin: 0 auto; }
对比之前的样式,这里修改 padding-bottom 为36.25%, margin:0 auto 则是让视频的位置居中对齐,同时新增加max-width值为640px,max-height的值为360px。