web響應(yīng)式布局中iframe自適應(yīng)的方法

問(wèn)題
在響應(yīng)式布局中,我們應(yīng)該小心對(duì)待iframe元素,iframe元素的width和height屬性設(shè)置了其寬度和高度,但是當(dāng)包含塊的寬度或高度小于iframe的寬度或高度時(shí),會(huì)出現(xiàn)iframe元素溢出的現(xiàn)象:
這樣溢出的iframe會(huì)破壞頁(yè)面的布局。我們可以采用一種方法讓iframe元素也具有響應(yīng)性,拭目以待。
解決方法
iframe元素本身并無(wú)法伸縮,除非通過(guò)js顯示的設(shè)置其寬度。但是我們可通過(guò)一個(gè)iframe-container元素來(lái)包裹iframe,同時(shí)讓iframe-container元素的寬度充滿(mǎn)包含塊的寬度,并且根據(jù)iframe的長(zhǎng)寬比,設(shè)置iframe-container元素的padding-bottom百分比。
其實(shí),這種方式的精髓就在于設(shè)置iframe-container元素的padding-bottom屬性,設(shè)置該屬性的目的在于變相的設(shè)置元素的高度。因?yàn)榻opadding-bottom設(shè)置百分比,是相對(duì)于父元素的width而言的,如果對(duì)height屬性設(shè)置百分比,則相對(duì)于父元素的height,而父元素的height值我們通常使用默認(rèn)的auto,因此會(huì)出現(xiàn)子元素height也為0.因此,我們只能給padding-bottom設(shè)置屬性。這樣,只需讓iframe元素充滿(mǎn)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;
}
}
<div class="wrap">
<div class="iframe-container">
<iframe height=498 width=510 src="<a frameborder=0 allowfullscreen></iframe>
</div>
</div>
結(jié)果顯示的狀態(tài):
當(dāng)視口寬度大于400px時(shí):
當(dāng)視口寬度小于400px時(shí):
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流。
相關(guān)文章
CSS3 media queries + jQuery實(shí)現(xiàn)響應(yīng)式導(dǎo)航
這篇文章主要介紹了CSS3 media queries + jQuery實(shí)現(xiàn)響應(yīng)式導(dǎo)航的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-30CSS3 過(guò)渡、變形和動(dòng)畫(huà)(響應(yīng)式設(shè)計(jì)入門(mén)) 中文PPT版
本PPT主要講述的是CSS3 過(guò)渡、變形和動(dòng)畫(huà);有需要的朋友可以下載看看2016-09-05jQuery和CSS3響應(yīng)式分步定制商品模板特效源碼
這是一款使用jQuery和CSS3制作的響應(yīng)式分步定制商品模板,最后的步驟會(huì)給出商品的價(jià)格和描述信息2016-09-02HTML5實(shí)現(xiàn)響應(yīng)式多角度全屏滑動(dòng)切換特效源碼
HTML5實(shí)現(xiàn)響應(yīng)式多角度全屏切換特效源碼是一款基于HTML5 SVG實(shí)現(xiàn)的響應(yīng)式全屏切換特效。本段代碼適應(yīng)于所有網(wǎng)頁(yè)使用,有需要的朋友可以直接下載使用2016-08-04css3 media 響應(yīng)式布局的簡(jiǎn)單實(shí)例
下面小編就為大家?guī)?lái)一篇css3 media 響應(yīng)式布局的簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-03- 下面小編就為大家?guī)?lái)一篇響應(yīng)式布局的簡(jiǎn)單案例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧,祝大家游戲愉快哦2016-07-18
- 下面小編就為大家?guī)?lái)一篇css3media響應(yīng)式布局實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-07-08
bLazy.js 輕量級(jí)支持響應(yīng)式圖片的lazyLoad腳本
一個(gè)不依賴(lài)于第三方JS庫(kù)(如 jQuery)的lazyLoad腳本,壓縮版只有幾Kb,而且支持根據(jù)不同的設(shè)備寬度顯示不同大小的圖片,這個(gè)功能對(duì)于響應(yīng)式開(kāi)發(fā)非常有用,也是推薦的主要2016-07-07jQuery+Hover實(shí)現(xiàn)響應(yīng)式下拉導(dǎo)航菜單欄特效源碼
jQuery+Hover實(shí)現(xiàn)響應(yīng)式下拉導(dǎo)航菜單欄特效源碼是一款鼠標(biāo)經(jīng)過(guò),下拉顯示一片子導(dǎo)航菜單欄目特效,排版精致,適用各大網(wǎng)站。需要的朋友前來(lái)下載使用2016-06-20jQuery+CSS3實(shí)現(xiàn)響應(yīng)式鼠標(biāo)懸停圖片邊框炫酷動(dòng)畫(huà)特效源碼
jQuery+CSS3實(shí)現(xiàn)響應(yīng)式鼠標(biāo)懸停圖片邊框炫酷動(dòng)畫(huà)特效源碼是一款鼠標(biāo)經(jīng)過(guò)圖片邊框漸變動(dòng)畫(huà)特效。有需要的朋友可以直接下載使用哦2016-06-16