移動端巧用margin/padding的百分比實現自適應
寫於2017-07-03,但是發現簡書比個人網站省力氣得多,遂搬家至此;
今天遇到了一個曾經認為的世紀大難題----圖片完美的自適應;
重要!敲黑板,劃重點!!
當
margin/padding
取值形式為百分比的值時,無論是left/right
,還是top/bottom
,都是以父元素的width
為參照物的!-----來自W3C標準
所以,很有必要深入研讀下W3C規範;
舉個栗子
要求:在每個原圖長寬比例不同的情況下,實現如圖的效果,且圖片寬高是百分比;
前提是不使用js
我之前的錯程式碼
<li>
<img src="">
<img src="">
<img src="">
</li>
li{
width:100%;
}
li img {
width: 32%;
float: left;
margin-right: 2%;
}
結果是這樣的————按照圖片原始比例高度自適應的;
解決辦法--設定容器的子元素或偽元素padding-bottom/top
使用margin/padding的百分比值
來解決自適應高度的關鍵在於:
容器margin/padding的百分比
參照物是父元素的寬度,而容器的width的百分比參照物也是父元素的寬度,倆屬性參照物一致,那麼想要把這倆屬性的值統一起來就很簡單了;
給img
加一個div父容器
,用百分比
給div一個寬,高
則給父容器的偽元素padding-bottom的百分比
來佔位。容器做好之後,img
用相對定位top:0;left:0;width:100%;height:100%
填滿整個div
就ok了。經測試,直接給父容器加padding-bottom百分比
也可以,但是加在偽元素上更好;
<li>
<div class="flex-pic">
<img src="">
</div>
<div class="flex-pic">
<img src="">
</div>
<div class="flex-pic">
<img src="">
</div>
</li>
li{
width:100%;
}
li .flex-pic{
width: 32%;
float: left;
margin-right: 2%;
margin-top: 8px;
position: relative;
z-index: 2;
overflow:hidden;
background:center center no-repeat;
}
.flex-pic:before{
content: "";
display:inline-block;
padding-bottom:75%;
width: 100%;
pointer-events: none;
z-index: -1;
}
.flex-pic img{
width:100%;
height:100%;
position:absolute;
top: 0;
left: 0;
}
總結
自適應的精髓在於寬度,margin/padding設定百分比
彌補了元素高度無法自適應地與元素寬度保持一致的缺陷;
版權宣告:本文原創,轉載請註明出處 https://www.jianshu.com/p/289ef32a2348
相關文章
- margin/padding百分比值的計算padding
- padding-bottom實現圖片自適應padding
- lib-flexible 實現移動端自適應佈局Flex
- scss自動生成margin padding邊距CSSpadding
- padding 、margin設定百分比的意義padding
- 區別margin、padding、width、height值為百分比padding
- 前端移動端自適應方案【筆記】前端筆記
- Web移動端 自適應縮放介面Web
- HTML5頁面移動端自適應佈局的實現示例程式碼HTML
- 移動端web自適應適配佈局解決方案Web
- 移動端法門:自適應方案和高清方案
- 移動端:對高度自適應的輸入框說不~
- HTML5 移動端自適應方案與踩坑HTML
- 遊戲陪玩原始碼的移動端適配,應該如何實現?遊戲原始碼
- vue移動端的自適應佈局的兩種解決方案Vue
- 移動端適配-實踐篇
- 基於vue-cli配置移動端rem自適應專案VueREM
- 用REM單位進行移動端適配的最佳實現REM
- 移動端適配
- 報表工具怎樣適應移動端?
- 行內元素的padding和margin屬性padding
- 行內元素的padding和margin是否有效padding
- margin和padding使用的場景有哪些?padding
- react移動端適配方案實踐React
- textarea實現高度自適應的理解
- viewport移動端適配View
- rem移動端適配REM
- vw移動端適配
- 適配移動端大全
- 移動端適配方案
- 用padding和margin撐起左右邊距padding
- 移動端適配深度探究
- 移動端適配總結
- 移動端適配問題
- 移動端適配-rem(新)REM
- 移動端web適配方案Web
- 移動端的適配及佈局
- 移動端iphoneX的適配問題iPhone