国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > CSS > 正文

CSS實(shí)現(xiàn)寬高等比自適應(yīng)容器的方法

2024-07-11 09:00:12
字體:
供稿:網(wǎng)友

在最近開發(fā)移動(dòng)端頁面,遇到這么一個(gè)情況:當(dāng)頁面寬度 100% 時(shí),高度為寬度一半,并隨手機(jī)寬度變化依然是一半。

于是我們就需要實(shí)現(xiàn)一個(gè) 寬度自適應(yīng),高度為寬度一半的容器 。

這里先以高度為寬度一半為例,也可以是其他任意比例 。

一、思考如何實(shí)現(xiàn)

這個(gè)問題類似于:我們在移動(dòng)端頁面,上面有一張寬度 100% 的圖片,如果我們沒設(shè)置高度,則圖片會(huì)根據(jù)原有尺寸,等比縮放。

我們可以借助這個(gè)想法,根據(jù)元素高度,來為元素設(shè)置一個(gè)相應(yīng)比例的高度即可。

二、實(shí)現(xiàn)方法1 - 通過 vw 視口單位實(shí)現(xiàn)

所謂 視口單位 (viewport units)是相對于視口(viewport)的尺寸而言, 100vw 等于視口寬度的 100% ,即 1vw 等于視口寬度的 1% 。

我們就可以利用這個(gè)特性,實(shí)現(xiàn)移動(dòng)端的寬高等比自適應(yīng)容器。

HTML代碼:

<div class="box">    <img src="http://images.pingan8787.com/2019_07_12guild_page.png" /></div>

CSS代碼:

*{    margin:0;    padding:0}.box{    width:100%;    height:51.5vw}.box img{     width:100%; }

為什么 .box 高度為 51.5vw 呢?

原因是圖片原來的尺寸是 884 * 455 的寬高比例,即 455 / 884 = 51.5% 。

這個(gè)方法相比原來圖片的等比縮放,有個(gè)優(yōu)點(diǎn):無論圖片是否加載成功,容器高度始終是計(jì)算完成,不會(huì)造成頁面抖動(dòng),也不會(huì)造成頁面重繪,從而提升性能。

下面看看這種情況下,圖片加載成功和失敗的對比:

三、實(shí)現(xiàn)方法2 - 通過子元素 padding 實(shí)現(xiàn)

通過設(shè)置子元素的 padding 屬性來實(shí)現(xiàn),是比較常用,也是效果比較好的一種,這里需要理解的是: 子元素的 padding 屬性百分比的值是先對父容器的寬度而言 。

這里看下面代碼和效果圖理解下:

HTML代碼:

<div class="box">    <div class="text">我是王平安,pingan8787</div></div>

CSS代碼:
 

.box{    width: 200px;}.text{    padding: 10%;}

分析:

這里我們將父容器 .box 寬度設(shè)置為 200px ,子元素 .text 的 padding:10% ,因此 .box 的 padding 計(jì)算結(jié)果為 20px ;

接下來結(jié)合主題,我們利用這個(gè)原理,來實(shí)現(xiàn)等比例的問題:

HTML代碼:

<div class="box">    <div class="text">        <img src="http://images.pingan8787.com/2019_07_12guild_page.png" />    </div></div>

CSS代碼:

.box{    width: 100%;}.text{    overflow: hidden;    height: 0;    padding-bottom: 51.5%;}.box .text img{    width: 100%;}

這里 .text 的 padding-bottom: 51.5%; 也是按照第一個(gè)方法,用圖片原始尺寸的寬高比計(jì)算出來的,需要注意,這里將 .text 設(shè)置 height: 0; 會(huì)出現(xiàn)高度比實(shí)際高的問題,因此為了避免這個(gè)情況,就需要設(shè)置 height: 0; 。

于是我們通過2種方法解決了這個(gè)問題。

總結(jié)

以上所述是小編給大家介紹的CSS實(shí)現(xiàn)寬高等比自適應(yīng)容器的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對武林網(wǎng)網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 石台县| 班戈县| 邵阳市| 乌恰县| 宣恩县| 望江县| 合阳县| 玉门市| 开远市| 建始县| 平定县| 长岭县| 香港 | 封开县| 临沭县| 卫辉市| 新邵县| 安达市| 遵义县| 扎兰屯市| 香港 | 青岛市| 白银市| 惠东县| 夹江县| 阿克陶县| 金塔县| 大方县| 常德市| 响水县| 安陆市| 资兴市| 中阳县| 叶城县| 兴国县| 施甸县| 泾阳县| 鄂温| 呼和浩特市| 金昌市| 潼关县|