響應式web布局中iframe的自適應


困境

          在響應式布局中,我們應該小心對待iframe元素,iframe元素的width和height屬性設置了其寬度和高度,但是當包含塊的寬度或高度小於iframe的寬度或高度時,會出現iframe元素溢出的現象:圖像 1

這樣溢出的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;
            }
        }
<div class="wrap">
        <div class="iframe-container">
            <iframe height=498 width=510 src="http://player.youku.com/embed/XOTE0MjkyODgw" frameborder=0 allowfullscreen></iframe>
        </div>
    </div>

結果顯示的狀態:

當視口寬度大於400px時:

圖像 2

當視口寬度小於400px時:

圖像 3


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM