午夜视频免费看_日韩三级电影网站_国产精品久久一级_亚洲一级在线播放_人妻体内射精一区二区三区_91夜夜揉人人捏人人添红杏_91福利在线导航_国产又粗又猛又黄又爽无遮挡_欧美日韩一区在线播放_中文字幕一区二区三区四区不卡 _日日夜夜精品视频免费观看_欧美韩日一区二区三区

主頁 > 知識庫 > 吃透移動端 Html5 響應式布局

吃透移動端 Html5 響應式布局

熱門標簽:ok電銷機器人 惡搞電話機器人 如何查看地圖標注 黃石ai電銷機器人呼叫中心 欣鼎電銷機器人 效果 地圖標注軟件打印出來 高德地圖標注商戶怎么標 電話機器人技術 智能電銷機器人被禁用了么

最近寫第三個移動端 H5 的項目了,準備記錄下自己在 H5 項目中的一些實踐探索。移動端 H5 與 PC 端開發最大的區別之一,大概就是 響應式布局 問題。

那么下面我們來聊聊移動端響應式布局,了解他的來龍去脈,對現有的最佳解決方案探索。

問題

全文將圍繞下面幾個問題進行論述和展開:

寫移動端H5 相關頁面,相比 PC 端有哪些值得注意的點?

關于H5 響應式布局有哪些解決方案?

什么是 rem?如何在項目中完美使用它?

vh/vw 是最佳解決方案嗎?它有什么優勢和缺陷 大型開源庫里面常用解決方案是什么?

怎樣快速搭建一套移動端布局解決方案?

由來

概念

什么是 H5 技術?

H5 這個命名本身是一個很不討巧的命名,咋一眼看上去認為 HTML5,或者第 5 級標題的標簽,對一些造成一些不小的誤解。

比如:我的一個某后端同事,談論到 H5 很簡單,HTML 之前我也學過一些,以后要是你請假,我來幫你寫。

我是一臉蒙蔽,H5 === HTML?

再看看,搜索引擎中H5是什么?(引用來自谷歌詞條第一頁)

如此看來,將 H5 視作 HTML 的大有人在,而 H5 這個概念只在中國特有,所以對外國人來說他們也認為是 HTML, 所以,對于外國人和非這個領域的人來說,他們存在一樣的誤解。

目前的 H5 算是一個比較大的概念了,我認為的 H5 技術是 一系列移動端 web 前端技術的集合 大致用一個韋恩圖表示如下

我們這里只談 web 前端中 H5 技術,H5 技術本身是用于 移動端的 web 網頁 。由于App本身有個 “ webview ” 的容器,在容器里可以運行 web 前端相關代碼,由此 H5 和原生 App 結合又衍生出來了 Hybrid App 技術 。

Hybrid App 技術大致原理

這是我給公司同事普及 H5 知識繪制的圖像。

移動端 web 和 PC web 的區別

PC 端我們是怎么布局的呢? 一般采用兩種方案,一種是 min-width 限制最小的寬度,瀏覽器寬度小于 min-width 就直接滾動。另外一種呢,就是留白。設置頁面一個基礎寬度,超出的部分留白。

但是這兩種解決方案在移動端可行嗎?

移動端手機的寬度,大多不一致,而且沒辦法進行窗口的縮放。讓移動端產生滾動,體驗更加糟糕,更別說和原生 app 性能相比較,基本頁面展示體驗就很差了。

那么留白呢? 更不可行了,手機設備本身寬度就小,再留白就基本看不了什么了。

所以為了讓這種 web 能夠像原生 app 一樣的體驗,就出現了 H5 技術。進一步衍生了 Hybird , 雖然比不上 app 性能,但是在 熱更新 上占有絕對優勢,有著原生無法替代的地方。

下面我們來就來實踐下 H5 最基本的技術之一 移動端響應式布局 。

實踐

解決方案一:rem + pxToRem 概念

css 中用于計量的單位有兩種,一種是 絕對單位 ,另一種是 相對單位

絕對單位

 

對于絕對單位,一般來說常用的也就 px, 其他的可能打印需要用到

相對單位

 

對于相對單位來說, emrem 屬于一對, vwvh屬于一對。

前一對相對于 字體大小 ,區別在于 rem 相對于 根字體 ,對于我們控制整體的大小相對容易些,所以我們可以使用它來控制整個頁面的縮放。

后一對,相對于視窗的大小,這個將在下一個節中發揮主要作用。

原理

  • 監聽屏幕視窗的寬度,通過一定比例換算賦值給 htmlfont-size 。此時,根字體大小就會隨屏幕寬度而變化。
  • px 轉換成 rem , 常規方案有兩種,一種是利用 sass / less 中的自定義函數 pxToRem ,寫 px 時,利用 pxToRem 函數轉換成 rem 。另外一種是直接寫 px ,編譯過程利用插件全部轉成 rem 。這樣 dom 中元素的大小,就會隨屏幕寬度變化而變化了。

 實現

動態更新根字體大小

const MAX_FONT_SIZE = 420

// 定義最大的屏幕寬度
document.addEventListener('DOMContentLoaded', () => {
  const html = document.querySelector('html')
  let fontSize = window.innerWidth / 10
  fontSize = fontSize > MAX_FONT_SIZE ? MAX_FONT_SIZE : fontSize
  html.style.fontSize = fontSize + 'px'
})

pxrem

pxToRem 方案一

$rootFontSize: 375 / 10;
// 定義 px 轉化為 rem 的函數
@function px2rem ($px) {
    @return $px / $rootFontSize + rem;
}

.demo {
    width: px2rem(100);
    height: px2rem(100);
}

pxToRem 方案二

vue-cli3 中配置 裝 postcss-pxtorem 插件就可以了,其他平臺大致差不多

const autoprefixer = require('autoprefixer')
const pxtorem = require('postcss-pxtorem')
module.exports = { 
  // ...
  css: {
    sourceMap: true,
    loaderOptions: {
      postcss: {
        plugins: [
          autoprefixer(),
          pxtorem({
            rootValue: 37.5,
            propList: ['*']
          })
        ]
      }
    }
  }
}

點擊快速配置 H5 項目工程

繼續探索postcss-pxtorem 插件源碼,查看它實現的原理

function createPxReplace (rootValue, unitPrecision, minPixelValue) {
    return function (m, $1) {
        if (!$1) return m;
        var pixels = parseFloat($1);
        if (pixels < minPixelValue) return m;
        var fixedVal = toFixed((pixels / rootValue), unitPrecision);
        return (fixedVal === 0) ? '0' : fixedVal + 'rem';
    };
}

px 變換成 rem 主要是這個函數,當然里面有很多可配置的參數, 核心原理和我們方案一差不多,方便在于,不需要每次寫 px 都要加上一個函數,代碼也清晰很多

是不是所有元素 px 都要轉換成 rem 呢?,那可不一定哦, border 中的 px 不應該轉 rem,涉及到另外一個 1px 的問題,上一篇文章詳細論述過,避免 pxrem ,將 border 中的 px 大寫成 PX/Px/pX

1px 適配問題請移至吃透移動端 1px

解決方案二:vh + vw

原理

vw 相對于視窗寬度的單位,隨寬度變化而變化。由此看來,方案一其實是方案二的一種 Hack, 通過使用監聽實現了方案二的效果

實現

與 rem 類似做法,直接使用postcss-px-to-viewport 插件進行配置, 配置方式也是和 postcss-pxtorem 大同小異

我們看看插件的原理是不是也是一樣的

function createPxReplace(opts, viewportUnit, viewportSize) {
  return function (m, $1) {
    if (!$1) return m;
    var pixels = parseFloat($1);
    if (pixels <= opts.minPixelValue) return m;
    var parsedVal = toFixed((pixels / viewportSize * 100), opts.unitPrecision);
    return parsedVal === 0 ? '0' : parsedVal + viewportUnit;
  };
}

果然呢,連方法名、變量名、代碼邏輯,都一摸一樣哈哈哈,誰抄誰,我就不指出來啦 - -

其他解決方案 

                    

  
  方案 缺陷
1 百分比 高度無法百分比
2 媒體查詢 + meta 中 viewport 不同設備寬度不同,縮放比無法完全確定
3 flex 還是無法解決寬度超出問題

上面方案均存在致命缺陷,不推薦使用它完成移動端布局計算。

flex 與 rem 結合使用更佳

兼容性

上述兩種方案, 兼容性主要在于 rem,vh,vw 關鍵詞上

rem 在移動端表現高達 100%,令人驚嘆!

 

 

vh vw表現還是比較令人滿意,低版本的 safari 情況下會有兼容性問題,但不影響它會成為一種比較好的移動端布局解決方案。

 開源庫解決方案

vant 組件庫

vant 組件庫中,默認采用 px 做計量單位,如果需要使用 rem ,直接使用插件完美適配。

對于 vw 方案,vant 也是可以通過插件將 px 轉成 vw ,對于 vw 可能會存在一些坑點。

ant-design-mobile 組件庫

ant-design-mobile 組件庫仍然使用 px 單位

@hd: 1px; // 基本單位

// 字體尺寸
// ---
@font-size-icontext: 10 * @hd;
@font-size-caption-sm: 12 * @hd;
@font-size-base: 14 * @hd;
@font-size-subhead: 15 * @hd;
@font-size-caption: 16 * @hd;
@font-size-heading: 17 * @hd;

// 圓角
// ---
@radius-xs: 2 * @hd;
@radius-sm: 3 * @hd;
@radius-md: 5 * @hd;
@radius-lg: 7 * @hd;
@radius-circle: 50%;

// 邊框尺寸
// ---
@border-width-sm: 1PX;
@border-width-md: 1PX;
@border-width-lg: 2 * @hd;

vant 組件一樣, 還是由開發者來決定到底用哪一種方案 這種把選擇權交給開發者,算是一種開源庫的最靈活的做法了 。

總結

通過該文,你大概了解 H5 問題的來龍去脈了吧,也明白了如何解決移動端響應式布局問題,如果這篇文章能解決你的疑問或者工作中問題,不妨 點個贊 收藏下。

由于技術水平有限,文章中如有錯誤地方,請在評論區指出,感謝!

上一篇文章,解決了 1px 問題 ,這篇文章解決了 響應式布局 問題, 接下我應該會繼續研究下, 關于 H5 一些踩坑總結 ,之后應該會去研究下 vue 最新的源碼 再進行分享,想持續了解更多,不妨點個 關注 唄。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

標簽:盤錦 阿壩 赤峰 綏化 金昌 聊城 中山 萍鄉

巨人網絡通訊聲明:本文標題《吃透移動端 Html5 響應式布局》,本文關鍵詞  吃透,移動,端,Html5,響應,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《吃透移動端 Html5 響應式布局》相關的同類信息!
  • 本頁收集關于吃透移動端 Html5 響應式布局的相關信息資訊供網民參考!
  • 推薦文章
    亚洲欧洲免费无码| 国产成人a亚洲精v品无码| 日韩一区欧美二区| 午夜精品一区二区三区在线 | 91成人天堂久久成人| 黄网在线观看视频| 伊人一区二区三区| 色999五月色| 久久伊99综合婷婷久久伊| 精品这里只有精品| 精品视频全国免费看| 深夜视频在线观看| 国产午夜精品一区二区三区| 在线观看日本网站| 91在线观看免费高清| 麻豆传媒一区二区三区| 中国一级黄色录像| 亚洲综合免费观看高清完整版| 又黄又爽的网站| 亚洲午夜未满十八勿入免费观看全集| 少妇又紧又色又爽又刺激视频 | 国产精品91久久久久久| 日本黄色网址大全| 欧美精品日韩一本| 欧美久久久久久久久久久久| 青青在线视频一区二区三区| 成人丝袜视频网| 色诱av手机版| 精品盗摄一区二区三区| 久久精品视频日本| 亚洲精品理论片| av资源站久久亚洲| 黄色一级片免费在线观看| 国产精品电影网站| 成人精品国产免费网站| 中文字幕第80页| 亚洲国产精品一区二区三区| 亚洲一线在线观看| 特级西西444www大精品视频| 色综合天天视频在线观看 | 欧美爱爱免费视频| 国产精品色视频| 91丨九色丨尤物| 国产免费a级片| 欧美福利视频网站| 成人综合婷婷国产精品久久蜜臀| 污污的视频免费| 在线成人激情黄色| 蜜桃av一区二区三区电影| 91蜜桃在线免费视频| 五月天视频一区| 亚洲精品中文字| 青青久久aⅴ北条麻妃| 亚洲超碰精品一区二区| 亚洲国产精品成人天堂| 亚洲电影av在线| 高清毛片aaaaaaaaa片| 1024成人网色www| 中文字幕91视频| 六月婷婷久久| 91精品国产综合久久香蕉麻豆| 国产精品自偷自拍| 国产精品97在线| 中文字幕亚洲激情| 成人国产亚洲欧美成人综合网 | 亚洲a v网站| 国产精品高清在线观看| 1区2区3区国产精品| 日批视频在线免费看| 欧美亚洲免费在线一区| 国产精品美女久久久久av爽| 中文字幕亚洲影院| 麻豆精品一区二区av白丝在线 | 天天操精品视频| 久久久久久中文| 国产亚洲欧美一级| 国产67194| 国产日韩欧美一区二区| 欧美影视一区在线| 亚洲黄色在线播放| 男女爽爽爽视频| 久久久亚洲精选| 欧美国产精品久久| 久久免费视频6| 无遮挡亚洲一区| 亚洲国产美女久久久久 | 亚洲精品国产一区二区精华液 | 女同性αv亚洲女同志| 日本精品久久久| 亚洲国产中文字幕| 中文字幕在线播放av| 欧美极品欧美精品欧美| 欧美大胆在线视频| 国产精品乱码一区二区三区软件| 精品少妇久久久| 视频一区二区视频| 丝袜美腿精品国产二区 | 91精品在线麻豆| 午夜av免费观看| 男男一级淫片免费播放| 91传媒在线免费观看| 在线播放亚洲一区| 老司机一区二区| 欧美 日韩 国产 成人 在线观看| 国产一区二区三区高清| 精品国产91九色蝌蚪| 高清国产午夜精品久久久久久| 亚洲天堂精品一区| 中文精品一区二区三区| 色偷偷噜噜噜亚洲男人| 国产欧美日韩综合| 午夜婷婷在线观看| 中文字幕欧美人妻精品一区| 男人靠女人免费视频网站| 国产精品一区二区性色av| 亚洲欧美一区二区激情| 日韩精品在线一区二区| 亚洲在线免费播放| 成人午夜短视频| 欧美熟妇另类久久久久久不卡 | 免费在线观看日韩欧美| 国产成人精品免费视频| 老司机精品视频在线| 男女做暖暖视频| 久久久久亚洲av无码专区喷水| 久久久这里只有精品视频| 精品久久久久久久人人人人传媒 | 国产日韩精品一区二区浪潮av| 日本在线观看视频网站| 亚洲熟妇国产熟妇肥婆| 国产精品99久久久久久人 | 国产女人18毛片水真多| 亚洲女人在线观看| 国模精品一区二区三区| 国产一区二区激情| 中文字幕欧美激情| 国产精品爽爽久久| 精品视频站长推荐| 亚洲看片网站| 韩国三级电影久久久久久| 色婷婷亚洲婷婷| 国产一区二区三区免费观看| 久久露脸国语精品国产91| 大香煮伊手机一区| 成人午夜在线观看| 亚洲精品一区av在线播放| 亚洲丝袜美腿综合| 久久精品卡一| 成人免费看片网址| 91亚洲一区二区| www.com日本| 佐佐木明希电影| 国产真人做爰视频免费| 成人毛片视频在线观看| 欧美一区二区三区粗大| xxxx18hd亚洲hd捆绑| 久久免费视频色| 中文字幕在线观看免费高清| 亚洲理论电影在线观看| 国产欧美日韩综合精品| 亚洲精品午夜精品| 午夜精品福利久久久| 国产不卡在线视频| 国产成人av免费| 亚洲区免费视频| 99久久久精品视频| 91午夜理伦私人影院| 色诱女教师一区二区三区| 欧美性猛交99久久久久99按摩| 国产真实乱偷精品视频免| 成人午夜精品视频| av永久免费观看| 中文字幕永久视频| 少妇免费毛片久久久久久久久| 日本一区二区在线播放| 精品呦交小u女在线| 偷窥少妇高潮呻吟av久久免费| 丁香六月综合激情| 999久久久| 成人中心免费视频| 狼狼综合久久久久综合网| 午夜久久资源| 亚洲色精品三区二区一区| 欧美日韩一区二区区| 极品人妻videosss人妻| 国产精品一区二区6| www.五月天激情| 99久久精品国产一区| 亚洲一区二区三区不卡国产欧美| 一本一本大道香蕉久在线精品 | 亚洲色图在线观看| 日韩精品在线播放| 亚洲激情视频网站| 97欧美精品一区二区三区| 午夜精品亚洲一区二区三区嫩草| 三级影片在线看| 亚洲精品日韩精品| 91亚洲人电影| 2019最新中文字幕| 爽爽爽爽爽爽爽成人免费观看| 欧美一区二区三级| 精品欧美aⅴ在线网站 | 国产福利久久久| 日本特黄久久久高潮| 2欧美一区二区三区在线观看视频| 亚洲色图丝袜美腿| 欧美日韩一本到| 欧美大秀在线观看| 久久伦理网站| 天堂在线中文在线| 69av.com| 亚洲综合色激情五月| 欧美二区在线| 黄瓜视频免费观看在线观看www| 中文字幕第88页| 日韩大片一区二区| 亚洲а∨天堂久久精品2021| 一级做a爱片久久| 日本婷婷久久久久久久久一区二区| 精品国产乱子伦| 99re热视频这里只精品 | 久久久国产一区二区| 黑人巨大精品欧美一区二区小视频 | 欧美日韩综合视频网址| 国产亚洲精品久久久久动| 九色综合日本| 成年人的黄色片| 亚洲AV无码国产精品午夜字幕| 国产欧美一区二区精品忘忧草| 精品国产乱码久久久久久影片| 国产日韩欧美视频| 国产最新免费视频| 国产乡下妇女做爰毛片| 成人激情视频网站| 欧美精品在线观看一区二区| 性欧美亚洲xxxx乳在线观看| 国产一线二线三线女| 欧美人妻一区二区| 久久久精品tv| 亚洲区一区二区| 日韩一区中文字幕| 日韩一区二区三区视频在线观看| 国产91在线播放精品91| 正在播放一区| 黑人一级大毛片| 成人免费一区二区三区在线观看| 在线观看国产精品91| 一区二区三区四区久久| 国产第一页第二页| 国产精品视频第一区| 欧日韩在线观看| 国产亚洲精品久久久久久无几年桃 | 国产精品人人妻人人爽| 亚洲综合成人在线视频| 欧美专区第一页| www.桃色.com| 五月婷中文字幕| 精品国产电影一区二区| 人妻无码一区二区三区四区| 中文字幕有码无码人妻av蜜桃| 午夜视频在线观看一区二区| 无遮挡亚洲一区| 日本欧美在线看| 日韩片电影在线免费观看| 午夜电影一区二区三区| 国产美女喷水视频| 成人www视频在线观看| 91麻豆国产自产在线观看| 999热精品视频| 国语自产精品视频在线看抢先版图片 | 九九视频精品免费| 国内精品二区| 99re66热这里只有精品3直播| 一区二区成人国产精品| 手机看片1024国产| 久久在线精品视频| a级片在线观看免费| 成人区精品一区二区| 亚洲少妇最新在线视频| 一区二区91美女张开腿让人桶| www.激情成人| 亚洲国产精品久久久久婷蜜芽 | 欧美高清第一页| 国产精品久久久久久久久毛片| 91精品久久久久| 国产成人在线视频网站| 天堂久久精品忘忧草| 国产一区喷水| 欧美午夜理伦三级在线观看| www日本高清视频| 五月婷婷深爱五月| 久久99国产精品自在自在app| 韩国成人在线视频| jizzjizzxxxx| 91精品国产91综合久久蜜臀| 久久久久久综合网| 在线国产精品视频| 欧美黑人精品一区二区不卡| 成人黄色在线播放| 中文字幕一区二区三区不卡| 中文字幕制服丝袜在线| 91一区在线观看| 欧美这里只有精品| 欧美午夜寂寞影院| 国产婷婷一区二区三区久久| 致1999电视剧免费观看策驰影院| 麻豆精品在线播放| 99亚洲精品视频| 7777精品伊人久久久大香线蕉经典版下载 | 欧美最大成人综合网| 欧美日韩成人在线| 国产麻豆视频一区| 国产在线视频二区| 激情图片qvod| 欧美高清视频在线观看| 国产精品午夜在线观看| 亚洲色图欧美自拍| 欧美激情视频一区二区三区不卡| 日韩电影免费一区| 韩日视频在线观看| 色婷婷综合视频在线观看| 国产性猛交普通话对白| 国产伦精品一区二区三区高清| 樱花草国产18久久久久| www午夜视频| 91精品久久久久久久99蜜桃| 国产真人无遮挡作爱免费视频| 国产免费黄色av| 国产a∨精品一区二区三区不卡| 美女诱惑一区二区| 国产精欧美一区二区三区白种人| 日韩性生活视频| 国产欧美日韩亚州综合 | 国产精品国产自产拍高清av王其| www.com亚洲| 免费成人黄色大片| 久热这里只精品99re8久 | 久久www免费人成精品| 亚洲另类xxxx| 亚洲成av人片观看| 无码人妻精品一区二区三区不卡 | 日本sm极度另类视频| 懂色av一区二区在线播放| 日韩无码精品一区二区| 国产精品视频免费在线| 久久久久久久久一| 成人小视频免费看| 69久久夜色精品国产69| 色先锋资源久久综合| 26uuu亚洲综合色| 波多野结衣电车| 69精品丰满人妻无码视频a片| 亚洲欧美日韩天堂| a亚洲天堂av| 日韩三级小视频| 99精品视频播放| 色悠久久久久综合欧美99| 一区二区www| 在线免费观看视频黄| 国产成人综合精品在线| 亚洲亚裔videos黑人hd| 日韩二区在线观看| 在线观看免费视频a| 国产又黄又粗又猛又爽的| 亚洲一级片av| 一区二区不卡在线观看| 国产欧亚日韩视频| 久久香蕉频线观| 欧美日韩亚洲一区二区| 亚洲欧美另类日韩| 制服丨自拍丨欧美丨动漫丨| 91麻豆桃色免费看| 亚洲区一区二区| 亚洲图片欧美激情| 无码人妻精品一区二| 亚洲黄色片免费| 人体精品一二三区| 欧美视频中文字幕在线| 美女久久一区| 亚洲永久无码7777kkk| 人妻互换免费中文字幕| 国产精品久久久一区二区三区 | 三级黄色在线观看| 国产h视频在线播放| 91精品国产综合久久久久| 麻豆成人在线观看| 古装做爰无遮挡三级聊斋艳谭| 蜜桃视频日韩| 久久99热精品| 日韩免费成人网| 91高清视频在线| 一本到三区不卡视频| 亚洲地区一二三色| 亚洲欧美综合色| 91麻豆成人久久精品二区三区| 色哟哟国产精品色哟哟| 中文字幕乱码在线观看| 懂色av中文字幕| 国产一级淫片免费| 啊啊啊一区二区| 精品亚洲欧美日韩| 国产不卡av在线免费观看| 亚洲一区在线观看网站| 成人aa视频在线观看| 欧美一级特黄aaaaaa| 欧美一区二区三区爽爽爽| 北京富婆泄欲对白| 亚洲一区和二区| 欧美这里只有精品| 国产有码一区二区|