以前拿到視覺稿做頁面適配,通常是針對不同的分辨率尺寸做斷點寫mediaquery,看效果再微調(diào)。如果在開發(fā)過程中對視覺稿進(jìn)行了修改,則必須再次進(jìn)行分辨率測試和微調(diào)試和微調(diào),然后想要糞便的心就有了。此外,這些適應(yīng)性是基于已知的分辨率尺寸庫。如果市場上有新的分辨率尺寸模型,哈哈,你必須在測試微調(diào)的路上奔跑。是否可以使用一套代碼來適應(yīng)各種分辨率窗口,那么就不會有上述問題,快速的開發(fā)效率和維護(hù)成本將大大降低。
答案是肯定的,這種形式早就出現(xiàn)了flash全屏全站,前段時間看了一篇關(guān)于圖片適應(yīng)屬性的文章。Object-fit,找到這個屬性O(shè)bject-fit雖然只能應(yīng)用于圖片,但其適應(yīng)思路可以借鑒H5頁面適應(yīng),這個想法就是「縮放」,也是本文的核心內(nèi)容。也就是說,無論窗口的寬度比如何,頁面都可以自動縮放到窗口的大小,元素的坐標(biāo)和大小也可以準(zhǔn)確方便地使用js計算的px為單位。
這里借用Object-fit方法命名方便記憶,下面簡要介紹H5頁適用于幾種顯示形式。
1、contain模式:以內(nèi)容中心為基礎(chǔ),根據(jù)視覺草案的寬度和高度比進(jìn)行縮放,以適應(yīng)窗口顯示整個頁面的內(nèi)容。窗口與內(nèi)容之間的寬度比或高度比較小,填充窗口。當(dāng)窗口的寬度和高度比與視覺草案不同時,另一個方向的兩側(cè)都有一個空的部分。