日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

CSS百分比padding制作圖片自適應布局

瀏覽:460日期:2022-06-02 18:40:45

一、CSS百分比padding都是相對寬度計算的

在默認的水平文檔流方向下,CSS marginpadding屬性的垂直方向的百分比值都是相對于寬度計算的,這個和top, bottom等屬性的百分比值不一樣。

這么設計的原因在我的新書(應該不出幾個月就要出版了)中會有說明,這里不展開。

對于padding屬性而言,任意方向的百分比padding都現對于寬度計算可以讓我們輕松實現固定比例的塊級容器,舉個例子,假設現在有個<div>元素:

div { padding: 50%; }

或者:

div { padding: 100% 0 0; }

或者:

div { padding-bottom: 100%; }

則這個<div>元素尺寸就是一個寬高1:1的正方形,無論其父容器寬度是多少,這個<div>元素總能保持比例不變。

這種能固定比例的特性什么作用呢?

對于絕大多數都布局,我們并不要求非要比例固定,但是有一種情況例外,那就是圖片,因為圖片原始尺寸它是固定的。在傳統的固定寬度的布局下,我們會通過給圖片設定具體的寬度和高度值,來保證我們的圖片占據區域穩固;但是在移動端或者在響應式開發情況下,圖片最終展現的寬度很可能是不確定的,例如手機端的一個通欄廣告,iPhone7下寬度是375,iPhone7 Plus下是414,還有360等尺寸,此時需要的不是對圖片進行固定尺寸設定,而是比例設定。

通常有如下一些實現:

1. 固定一個高度,然后使用background-size屬性控制,如下:

.banner { height: 40px; background-size: cover;}

實時效果如下:

可以看到隨著寬度的變化,總會有部分圖片區域(寬度或高度)無法顯示,并不是完美的做法。

2. 使用視區寬度單位vw,如下:

.banner { height: 15.15vw; background-size: cover;}

如果對兼容性要求不是很高,使用vw也是一個不錯的做法,至少理解起來要更輕松一點。

但是,如果我們的圖片不是通欄,而是需要離左右各1rem的距離,此時,我們的CSS代碼就要啰嗦點了,想要保持完美比例,就使用借助CSS3 calc()計算:

.banner { height: calc(0.1515 * (100vw - 2rem)); background-size: cover;}

如果,圖片距離兩側的寬度是動態不確定的,則,此時calc()也捉襟見肘了,但,恰恰是普普通通其貌不揚的padding屬性,其兼容性和適應性都一級棒。

3. 使用百分比padding,如下:

.banner { padding: 15.15% 0 0; background-size: cover;}

此時無論圖片的外部元素怎么變動,比例都是恒定不變的。

二、CSS百分比padding與寬度自適應圖片布局

但是有時候我們的圖片是不方便作為背景圖呈現的,而是內聯的<img>,百分比padding也是可以輕松應對的,求套路是比較固定的,圖片元素外面需要一個固定比例的容器元素,例如下面的HTML結構:

<div> <img src=""banner.jpg></div>

.banner元素同樣負責控制比例,然后圖片填充.banner元素即可,CSS代碼如下:

.banner { padding: 15.15% 0 0; position: relative;}.banner > img { position: absolute; width: 100%; height: 100%; left: 0; top: 0;}

效果就達成了!

眼見為實,去年起點中文網手機版諸多頁面的通欄廣告就都是這么實現的,最終的效果參見下面的gif截圖(如果圖無法顯示,可以評論反饋):

可以看到,無論屏幕寬度多寬,我們的廣告圖片比例都是固定的,不會有任何剪裁,不會有任何區域缺失,布局就顯得非常有彈性,也更健壯。

————-

其實,我之前一直低估百分比padding的實際應用價值,因為有vw單位的存在,畢竟理解vw看上去要更簡單一些,所以,一直就沒做相關技巧的介紹。但是,隨著圖片相關布局處理越來越多,我發現,百分比padding的實用價值要比想象的大,要比vw單位適用場景更多,兼容性更好(百分比特性IE6+支持,圖片100%覆蓋IE8+支持)。

對于復雜布局,如果圖片的寬度是不固定的自適應的,我們通常會想到這么一個取巧的做法,就是只設定圖片的寬度,例如:

img { width: 100%; }

此時瀏覽器默認會保持圖片比例顯示,圖片寬度大了,高度也跟著一起變大;圖片寬度小了,高度也跟著一起變小。開發人員似乎無需關心圖片真實比例是怎樣的。

然而這種技巧有一個非常不好的體驗問題,那就是隨著頁面加載的進行,圖片占據的高度會有一個從0到計算高度的圖片變化,視覺上會有明顯的元素跳動,代碼層面會有布局重計算。

所以對圖片高寬進行同時約定還是有必要的,但是同時要保證寬度自適應,似乎有點難度。記住,如果遇到這種需求場景,沒有比百分比padding布局更好的做法!

縮小瀏覽器寬度可以看到不同寬度下的布局效果,Gif效果截圖如下:

此demo難點就是圖片自適應同時保持比例,以及頁面刷新的時候沒有布局穩固不晃動,其核心HTML和CSS代碼如下:

<div>  <img src="./150x200.png"></div>
.works-item-t { padding-bottom: 133%; position: relative;}.works-item-t > img { position: absolute; width: 100%; height: 100%;}

可以看到,當把垂直方向padding值只使用padding-bottom表示的時候,如果沒有text-align屬性干擾,<img>元素的left:0;top:0是可以省略的。

對于這種圖片寬度100%容器,高度按比例的場景,padding-bottom的百分比值大小就是圖片元素的高寬比,就這么簡單。

但,有時候,圖片寬度并不是100%容器的,例如,圖片寬度50%容器寬度,圖片高寬比4:3,此時,CSS垂直方向百分比就666了,如下:

.img-box { padding: 0 50% 66.66% 0;}
標簽: CSS HTML
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
成人久久一区| 国产精品对白久久久久粗| 国模大尺度视频一区二区| 国产精品日韩精品在线播放| 天堂va欧美ⅴa亚洲va一国产| 99热精品在线| 国产精品日本欧美一区二区三区| av高清一区| 久久久久久久久丰满| 久久亚洲成人| 亚洲大全视频| 日韩精品永久网址| 精品香蕉视频| 久久福利影视| 蜜桃av一区二区在线观看| 在线国产日韩| 日本成人在线不卡视频| 欧美日韩中出| 麻豆国产欧美一区二区三区| 精品国产欧美日韩| 国产美女高潮在线| 99精品综合| 免费久久久久久久久| 美女91精品| 欧美一区网站| 91青青国产在线观看精品| 欧美一区三区| 亚欧成人精品| 精品高清久久| 美女网站一区| 亚洲视频国产| 国产精久久久| 成人久久一区| 亚洲精品九九| 精品一区二区三区中文字幕视频 | 久久最新视频| 欧美色综合网| а√天堂8资源中文在线| 国产精品美女久久久| 欧美日韩1区2区3区| 日韩欧美综合| 视频一区中文字幕国产| 国产精品观看| 欧美大黑bbbbbbbbb在线| 日本aⅴ亚洲精品中文乱码| 国产一区二区三区不卡av| 红桃视频亚洲| 国产精品久久久久久久久久白浆 | 欧美精品aa| 久久九九精品| 人人精品久久| 亚洲天堂免费电影| 亚洲精品在线a| a日韩av网址| 蜜桃传媒麻豆第一区在线观看| 国产日韩欧美高清免费| 久久精品电影| 国产一卡不卡| 91成人超碰| 国产精品片aa在线观看| 亚洲午夜精品久久久久久app| 日韩国产一二三区| 久久久久久久久丰满| 欧美日韩1区2区3区| 欧美不卡视频| 久久av影院| 91久久中文| 给我免费播放日韩视频| 免费国产亚洲视频| 日韩大片免费观看| 日韩精品高清不卡| 精品免费av在线| 国产亚洲一区二区三区啪| 国产99在线| 国产欧美日韩精品一区二区三区| 激情欧美一区二区三区| 日本欧美大码aⅴ在线播放| 91tv亚洲精品香蕉国产一区| 人人精品久久| 亚洲免费影院| 久久激情中文| 国内在线观看一区二区三区| 日韩欧美另类中文字幕| 婷婷亚洲综合| 中文av在线全新| 午夜久久av| 尤物网精品视频| 色偷偷偷在线视频播放| 国产精品一区高清| 综合激情婷婷| 一区二区自拍| 神马日本精品| 精品国产亚洲一区二区三区在线 | 天堂精品久久久久| 国产精品嫩草99av在线| 激情综合亚洲| 在线观看精品| 欧美激情aⅴ一区二区三区| 免费高清在线一区| 激情五月综合| 欧美成a人国产精品高清乱码在线观看片在线观看久 | 日韩一级欧洲| 日韩av福利| 高清精品久久| 久久不卡国产精品一区二区| 国产日韩免费| 日韩激情视频网站| 免费在线观看日韩欧美| jiujiure精品视频播放| 日韩精品欧美| 亚洲成人不卡| 国产成人精品福利| 国产精品2023| 美女毛片一区二区三区四区最新中文字幕亚洲 | 丝袜美腿亚洲色图| 蜜桃视频欧美| 欧美综合另类| 久久国产亚洲精品| 肉色欧美久久久久久久免费看| 麻豆精品久久久| 另类小说一区二区三区| 国产九一精品| 精品一区二区三区在线观看视频| 美女久久99| 欧美成人a交片免费看| 麻豆mv在线观看| 在线天堂资源www在线污| 国产传媒av在线| 青青青免费在线视频| 日韩欧美一区二区三区免费看| 成人片免费看| 欧美粗暴jizz性欧美20| 国产婷婷精品| 亚洲另类av| 四虎精品一区二区免费| 国产色99精品9i| 精品一区视频| 久久蜜桃资源一区二区老牛| 激情欧美国产欧美| 美女黄网久久| 欧美亚洲一级| 久久午夜影院| 亚洲有吗中文字幕| 婷婷综合国产| 精品久久久久久久| 国产一区不卡| 成人久久一区| 国产精品日韩| 日本午夜精品久久久| 日韩中文av| 国产精品久久久亚洲一区| 国产精品毛片一区二区在线看| 日韩不卡免费高清视频| 激情91久久| 日日摸夜夜添夜夜添国产精品| 国产精品免费不| 波多野结衣久久精品| 亚洲免费网址| 国产精品18| 在线一区视频观看| 日韩中文字幕不卡| 国产欧美日韩精品高清二区综合区 | 久久狠狠久久| 国产精品久久观看| 香蕉久久99| 亚洲久久一区| 精品国产一区二区三区2021| 欧美二区视频| 欧美亚洲综合视频| 国产超碰精品| 日本在线视频一区二区| 久久av影院| 亚洲黄色在线| 欧美a在线观看| 精品在线99| 欧美日韩xxxx| 久久激情中文| 日本精品另类| 国产麻豆久久| 亚洲精品字幕| 国产精品福利在线观看播放| 亚洲一区欧美二区| 久久不见久久见中文字幕免费| 国产一区亚洲| 国产欧美日韩在线一区二区| 久久国产电影| 国产精品一区二区99| 亚洲天堂久久| 国产精品宾馆| 男女精品网站| 91视频精品| 日韩精品高清不卡| 久久久久蜜桃| 国产精品一区二区精品视频观看| 国产综合色产| 精品国产一级| 亚洲精品日韩久久| 久久精品影视| 精品免费av一区二区三区| 亚洲毛片一区|