目標:
遇到一個需求,讓圖片在頁面中,不管寬度如何變化。寬高保持16:9的比例。
實現:
方法一:這也是比較經典的一個方法,利用padding-bottom來實現。
<!DOCTYPE html> <html> <head> <title>固定寬高比16:9</title> <style type="text/css"> *{ margin: 0px; padding: 0px; } .wrap{ width:100%; } /* 16:9寬高比,則設padding-bottom:56.25% */ /* height: 0px,防止矩形被里面的內容撐出多余的高度*/ .box{ width: 100vw; height: 0px; position: relative; padding-bottom: 56.25%; background: pink; } /* 如果需要在div里面設置內容*/ /* 需要設置position:absolute,才能設置內容高度100%和矩形一樣 */ /*.box p{ width: 100%; height: 100%; position: absolute; }*/ </style> </head> <body> <div class="wrap"> <div class="box"> <p>這是一個16:9的矩形</p> </div> </div> </body> </html>
方法二:利用vmin來實現。
<!DOCTYPE html> <html> <head> <title>固定寬高比16:9</title> <style type="text/css"> *{ margin: 0px; padding: 0px; } .wrap{ width:100%; } /*vmin:相對于可視窗口的寬度或高度中較小的那個,被均分為100單位的vmin*/ /*例:當寬度是300,高度是600,那么50vmin則是相對于寬度的50%*/ .box{ height: 56.25vmin; background: pink; } </style> </head> <body> <div class="wrap"> <div class="box"> <p>這是一個16:9的矩形</p> </div> </div> </body> </html>
注意:如果屏幕寬度較大高度較小時,則可以用vmax。如果需要隨意切換時,可以通過js來控制。
總結:
兩種方法各有利弊,方法一:兼容性好,代碼相對長點,理解也比較困難點。方法二:代碼簡潔,理清定義后便非常容易理解,但是兼容性相對差一些。不過兼容性啥的,怕什么哈哈哈。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com