php iframe布局,解析web响应式布局中iframe自适应的方法

问题

在响应式布局中,我们应该小心对待iframe元素,iframe元素的width和height属性设置了其宽度和高度,但是当包含块的宽度或高度小于iframe的宽度或高度时,会出现iframe元素溢出的现象:

d45d8c3c43b7653a4eed287851ec5f82.png

这样溢出的iframe会破坏页面的布局。我们可以采用一种方法让iframe元素也具有响应性,拭目以待。

解决方法

iframe元素本身并无法伸缩,除非通过js显示的设置其宽度。但是我们可通过一个iframe-container元素来包裹iframe,同时让iframe-container元素的宽度充满包含块的宽度,并且根据iframe的长宽比,设置iframe-container元素的padding-bottom百分比。

其实,这种方式的精髓就在于设置iframe-container元素的padding-bottom属性,设置该属性的目的在于变相的设置元素的高度。因为给padding-bottom设置百分比,是相对于父元素的width而言的,如果对height属性设置百分比,则相对于父元素的height,而父元素的height值我们通常使用默认的auto,因此会出现子元素height也为0.因此,我们只能给padding-bottom设置属性。这样,只需让iframe元素充满iframe-container即可。.wrap{

width: 400px;

margin: auto;

border: 5px solid greenyellow;

}

.iframe-container{

height: 0;

padding-bottom: 97.6%;

position: relative;

}

.iframe-container iframe{

position: absolute;

left: 0;

top: 0;

width: 100%;

height: 100%;

}

@media screen and (max-width: 400px) {

.wrap{

width: 300px;

}

}

http://player.youku.com/embed/XOTE0MjkyODgw" frameborder=0 allowfullscreen>

结果显示的状态:

当视口宽度大于400px时:

690c1aa0f3e1e43547d9c4285944455c.png

当视口宽度小于400px时:

6fe9b8e8db9ef7240508f7432b0ccc43.png

总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值