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