摘要:于是我們就需要實現(xiàn)一個寬度自適應(yīng),高度為寬度一半的容器。一思考如何實現(xiàn)這個問題類似于我們在移動端頁面,上面有一張寬度的圖片,如果我們沒設(shè)置高度,則圖片會根據(jù)原有尺寸,等比縮放。我們就可以利用這個特性,實現(xiàn)移動端的寬高等比自適應(yīng)容器。
在最近開發(fā)移動端頁面,遇到這么一個情況:當(dāng)頁面寬度 100% 時,高度為寬度一半,并隨手機寬度變化依然是一半。
于是我們就需要實現(xiàn)一個寬度自適應(yīng),高度為寬度一半的容器。
這里先以高度為寬度一半為例,也可以是其他任意比例。
一、思考如何實現(xiàn)這個問題類似于:我們在移動端頁面,上面有一張寬度 100% 的圖片,如果我們沒設(shè)置高度,則圖片會根據(jù)原有尺寸,等比縮放。
我們可以借助這個想法,根據(jù)元素高度,來為元素設(shè)置一個相應(yīng)比例的高度即可。
二、實現(xiàn)方法1 - 通過 vw 視口單位實現(xiàn)所謂視口單位(viewport units)是相對于視口(viewport)的尺寸而言,100vw 等于視口寬度的 100%,即 1vw 等于視口寬度的 1%。
我們就可以利用這個特性,實現(xiàn)移動端的寬高等比自適應(yīng)容器。
HTML代碼:
CSS代碼:
*{ margin:0; padding:0 } .box{ width:100%; height:51.5vw } .box img{ width:100%; }
為什么 .box 高度為 51.5vw 呢?
原因是圖片原來的尺寸是 884 * 455的寬高比例,即 455 / 884 = 51.5%。
這個方法相比原來圖片的等比縮放,有個優(yōu)點:無論圖片是否加載成功,容器高度始終是計算完成,不會造成頁面抖動,也不會造成頁面重繪,從而提升性能。
下面看看這種情況下,圖片加載成功和失敗的對比:
三、實現(xiàn)方法2 - 通過子元素 padding 實現(xiàn)通過設(shè)置子元素的 padding 屬性來實現(xiàn),是比較常用,也是效果比較好的一種,這里需要理解的是:子元素的 padding 屬性百分比的值是先對父容器的寬度而言。
這里看下面代碼和效果圖理解下:
HTML代碼:
我是王平安,pingan8787
CSS代碼:
.box{ width: 200px; } .text{ padding: 10%; }
分析:
這里我們將父容器 .box 寬度設(shè)置為 200px,子元素 .text 的 padding:10% ,因此 .box 的 padding 計算結(jié)果為 20px;
接下來結(jié)合主題,我們利用這個原理,來實現(xiàn)等比例的問題:
HTML代碼:
CSS代碼:
.box{ width: 100%; } .text{ overflow: hidden; height: 0; padding-bottom: 51.5%; } .box .text img{ width: 100%; }
這里 .text 的 padding-bottom: 51.5%; 也是按照第一個方法,用圖片原始尺寸的寬高比計算出來的,需要注意,這里將 .text 設(shè)置 height: 0; 會出現(xiàn)高度比實際高的問題,因此為了避免這個情況,就需要設(shè)置 height: 0;。
于是我們通過2種方法解決了這個問題。
Author | 王平安 |
---|---|
[email protected] | |
博 客 | www.pingan8787.com |
微 信 | pingan8787 |
每日文章推薦 | https://github.com/pingan8787... |
ES小冊 | js.pingan8787.com |
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/116201.html
摘要:不規(guī)整元素的寬高等比例在不同屏幕情況中不同寬高的元素都以相同等比例等寬和等高方式展示。規(guī)定基于父元素的寬度的百分比的內(nèi)邊距。 不規(guī)整元素的寬高等比例 在不同屏幕情況中不同寬高的元素都以相同等比例、等寬和等高方式展示。 需求 設(shè)計師希望頁面的圖片區(qū)域,以寬高為2:1比例且所有圖片的等寬和等高的方式展示。小加同學(xué)覺得設(shè)計師這需求太容易,分分鐘搞定,拿到圖片后便開始刷刷的擼代碼。原型設(shè)計稿大...
摘要:不規(guī)整元素的寬高等比例在不同屏幕情況中不同寬高的元素都以相同等比例等寬和等高方式展示。規(guī)定基于父元素的寬度的百分比的內(nèi)邊距。 不規(guī)整元素的寬高等比例 在不同屏幕情況中不同寬高的元素都以相同等比例、等寬和等高方式展示。 需求 設(shè)計師希望頁面的圖片區(qū)域,以寬高為2:1比例且所有圖片的等寬和等高的方式展示。小加同學(xué)覺得設(shè)計師這需求太容易,分分鐘搞定,拿到圖片后便開始刷刷的擼代碼。原型設(shè)計稿大...
摘要:隨著移動端的發(fā)展,在手機上看電腦端的頁面已成為非常普及現(xiàn)象。方案一固定高度,使其寬度自適應(yīng)這也是我接觸移動端適配第一次使用的方案。 不知不覺做前端已經(jīng)兩年了,從PC端,移動端,微信小程序一路走來到今天剛剛開放注冊的快應(yīng)用(手機廠商對抗小程序的新技能,所以在注冊時用的是qq郵箱的話要去垃圾箱里才能找到注冊郵件),對于前端圈日新月異的磅礴發(fā)展對于大前端發(fā)展是喜聞樂見的,這次的快應(yīng)用的手機廠...
摘要:隨著移動端的發(fā)展,在手機上看電腦端的頁面已成為非常普及現(xiàn)象。方案一固定高度,使其寬度自適應(yīng)這也是我接觸移動端適配第一次使用的方案。 不知不覺做前端已經(jīng)兩年了,從PC端,移動端,微信小程序一路走來到今天剛剛開放注冊的快應(yīng)用(手機廠商對抗小程序的新技能,所以在注冊時用的是qq郵箱的話要去垃圾箱里才能找到注冊郵件),對于前端圈日新月異的磅礴發(fā)展對于大前端發(fā)展是喜聞樂見的,這次的快應(yīng)用的手機廠...
閱讀 1134·2021-10-09 09:43
閱讀 18650·2021-09-22 15:52
閱讀 1077·2019-08-30 15:44
閱讀 3071·2019-08-30 15:44
閱讀 3259·2019-08-26 14:07
閱讀 922·2019-08-26 13:55
閱讀 2581·2019-08-26 13:41
閱讀 3103·2019-08-26 13:29