如何測試響應(yīng)式網(wǎng)站設(shè)計跨瀏覽器兼容性?
HTML是一種固有的流動媒介。文本和容器在水平和垂直方向上展開以使用可用空間。這種流動性使復(fù)雜的設(shè)計變得更加困難,因此在千禧年之初,許多站點都根據(jù)流行的屏幕尺寸采用了固定寬度。
隨著屏幕尺寸從800×600增加到1024×768甚至更大,該過程仍然可行。但是,智能手機的興起和2007年推出的iPhone扭轉(zhuǎn)了這一趨勢。如今,超過一半的用戶在較小的移動設(shè)備上訪問網(wǎng)頁。
注意:從技術(shù)上講,智能手機通常比許多顯示器具有更高的分辨率,但是單個像素變得不可見。iPhone 11 Max將其2688 x 1242的硬件分辨率轉(zhuǎn)換為更實用的896×414邏輯分辨率。每個邏輯像素映射到3×3實際像素的網(wǎng)格,這使字體更平滑并增加了圖像細(xì)節(jié)。
最初的解決方法是兩個站點:一個用于桌面,一個用于移動,通常需要偵聽用戶代理以進行重定向。隨著各種設(shè)備呈指數(shù)增長,這很快變得不切實際。
最后,術(shù)語“響應(yīng)式網(wǎng)頁設(shè)計(RWD)”由Ethan Marcotte在2010年提出。該技術(shù)使同一個站點可以在任何設(shè)備上工作,而不管屏幕尺寸或視口尺寸如何。
RWD如何工作?
沒有單一的RWD方法或技術(shù)。
首先,您必須確定站點設(shè)計如何對不同尺寸的顯示器做出反應(yīng)。這是一個挑戰(zhàn),許多首批RWD網(wǎng)站采用了現(xiàn)有的桌面布局,并隨著屏幕尺寸的減小而刪除了部分內(nèi)容。
更好的技術(shù)是移動技術(shù)。它始于線性移動視圖,可在所有設(shè)備上使用,然后隨著更多空間和受支持的瀏覽器功能可用而重新排列或改編內(nèi)容。最近,許多站點采用了更簡單的布局,其中移動和桌面體驗基本相似。
RWD的典型示例是漢堡菜單。屏幕較小的用戶可以單擊圖標(biāo)來查看導(dǎo)航鏈接,而屏幕較大的用戶可以在水平列表中查看所有選項。
以下各節(jié)提供了許多技術(shù)實施選項。
HTML viewport元標(biāo)記
無論采用哪種RWD技術(shù),都必須在HTML中設(shè)置以下標(biāo)記:
該width=device-width設(shè)置可確保移動瀏覽器將邏輯CSS像素縮放到屏幕的寬度。否則,瀏覽器將假定它正在呈現(xiàn)一個桌面站點并相應(yīng)地縮放它,以便可以對其進行平移和縮放。
媒體查詢
媒體查詢是第一個RWD網(wǎng)站的主要基礎(chǔ)。它們允許CSS定位視口尺寸的特定范圍。例如:
/* styles applied to all views */p {font-size: 1rem;} /* styles applied to viewports with a width between 900px and 1200px */ @media (min-width: 900px) and (max-width: 1200px) {p {font-size: 1.5rem;} }
盡管現(xiàn)在可以使用不太明確的選項,但仍使用媒體查詢。
元素
HTML元素使用媒體查詢語法從多個選項中控制顯示哪個圖像。這通常用于藝術(shù)指導(dǎo),以顯示適合設(shè)備視口的圖像。例如:
CSS視口單位
的vw和vhCSS單元分別表示視口的高度和寬度的1%。vmin是最小尺寸的vmax1%,是最大尺寸的1%。
這些允許RWD靈活性,特別是與結(jié)合使用時calc。例如:
/* font size increases with viewport width */ p { font-size: 1rem + 0.5vw; }
CSS列
CSS多列布局提供了一種隨著容器尺寸增加而創(chuàng)建多個文本列的方法。例如:
/* columns must be a minimum width of 12rem with a gap of 2rem between each */ .container { columns: 12rem auto; column-gap: 2rem; }
CSS Flexbox和網(wǎng)格
CSS Flexbox和CSS Grid提供了現(xiàn)代技術(shù),可根據(jù)子元素的內(nèi)容和可用空間對子元素進行布局。主要區(qū)別:
Flexbox用于一維布局。元素可以根據(jù)需要包裝(或不包裝)到下一行,因此列可能不對齊。
網(wǎng)格用于二維布局,通常具有可識別的行和列。
可以用來創(chuàng)建內(nèi)部布局。本質(zhì)上,無需視媒體查詢即可根據(jù)視口尺寸調(diào)整元素的大小。例如:
.grid-container { display: grid; grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr)); grid-gap: 1rem;}
JavaScript RWD選項
JavaScript也可以用于確定視口尺寸并做出相應(yīng)的反應(yīng)。例如:
// get viewport width and heightconstvw = window.innerWidth,vh = window.innerHeight;
類似地,盡管getBoundingClientRect()方法可以返回更多信息,包括像素的分?jǐn)?shù),但是可以使用offsetWidth和offsetHeight檢查單個元素的尺寸:
const element = document.getElementById('myelement'),rect = element.getBoundingClientRect(),ew = rect.width,eh = rect.height;
窗口和元素的尺寸可以隨著設(shè)備旋轉(zhuǎn)或調(diào)整瀏覽器窗口的大小而改變。該matchMediaAPI可以解析CSS媒體查詢并觸發(fā)更改事件:
// media queryconst mql = window.matchMedia('(min-width: 600px)');// initial check mqTest(mql); // call mqTest when media query changes mql.addListener(mqTest); // media query testing function function mqTest(e) { if (e.matches) { console.log('viewport is at least 600px width'); } else { console.log('viewport is less than 600px width'); }}
瀏覽器支持
首先,RWD技術(shù)提供了良好的瀏覽器支持。當(dāng)前使用的最新瀏覽器中,有近95%支持最新的CSS網(wǎng)格選項。但是,仍然有必要在各種設(shè)備,分辨率和瀏覽器上測試您的網(wǎng)站……
瀏覽器內(nèi)測試
調(diào)整瀏覽器窗口的大小是幾個小時的合理測試策略,但是它很快變得不準(zhǔn)確且麻煩。大多數(shù)瀏覽器都提供了響應(yīng)式設(shè)計模式,使您可以選擇設(shè)備和用戶代理,對其進行旋轉(zhuǎn),選擇分辨率,更改像素密度,調(diào)節(jié)帶寬,模擬觸摸并拍攝屏幕截圖。
在Firefox中,從Web Developer菜單中選擇“響應(yīng)式設(shè)計模式”或按Ctrl|Cmd+Shift+M。
在基于Chromium的瀏覽器中,從“更多工具”菜單中打開“開發(fā)者”工具,或按Ctrl|Cmd+Shift+I,然后單擊切換設(shè)備工具欄圖標(biāo),切換回瀏覽器選項卡以查看調(diào)整大小的站點。
在Safari中,從瀏覽器“偏好設(shè)置”的“高級”標(biāo)簽中啟用“在菜單欄中顯示開發(fā)菜單”選項。加載頁面,然后從“開發(fā)”菜單中選擇“進入響應(yīng)設(shè)計模式” 。
但是,請注意,這些工具僅模仿設(shè)備的屏幕尺寸和用戶代理。他們無法準(zhǔn)確模擬以下內(nèi)容:
渲染能力瀏覽器將使用其自己的呈現(xiàn)引擎-而不是模擬設(shè)備的呈現(xiàn)引擎。Firefox的CSS功能可以在其模擬的iPhone視圖上“工作”,而無需實際支持。也就是說,Chrome桌面將顯示出與Android Chrome相當(dāng)?shù)慕浦?,而macOS Safari將類似于iPhone,因為它們基于相同的渲染引擎。
較舊的設(shè)備在最新版本的Safari上測試iPhone瀏覽器視圖無法正確表示具有舊版操作系統(tǒng)和軟件的舊設(shè)備。
高密度顯示器您僅限于PC顯示器的物理像素,因此,在實際設(shè)備上,網(wǎng)站看起來可能會更好或更糟。
觸摸與具有小顯示屏的觸摸屏設(shè)備相比,鼠標(biāo)或觸控板具有更好的控制。可能無法查看懸停效果。
處理速度您的PC可能比移動設(shè)備具有更快的網(wǎng)絡(luò)和處理速度。
移動操作系統(tǒng)模擬器
在設(shè)備上運行Android或iOS虛擬機可讓您安裝和運行真正的移動瀏覽器并使用其實際渲染引擎。
Android模擬器包括:
Genymotion:免費和商業(yè),適用于Windows,macOS和Linux的所有Android版本
Android Studio:免費,Windows,macOS和Linux
Visual Studio Xamarin:商業(yè),Windows和macOS
Bliss OS:免費,適用于Windows,Linux和Chrome OS的Android 9
Phoenix OS:免費,適用于Windows和macOS的Android 7.1或5.1
Android-x86:適用于任何虛擬機平臺的免費Android ISO。
Chrome是Android上明顯的瀏覽器選擇,但您也可以安裝Opera Mini,這在低功率功能手機上很顯眼。
iOS的選項更為有限:
Apple Xcode:商業(yè),macOS
Electric Mobile Studio:商業(yè),Windows
iPadian模擬器:商業(yè),Windows
這些仿真器仍有缺點:
該軟件需要一定的技術(shù)知識,并占用大量系統(tǒng)資源。
許多iOS選項都是模擬器。它們會改用其他渲染引擎,并且不一定總是準(zhǔn)確的。
在線測試服務(wù)
幾種在線服務(wù)使您可以通過Web在移動瀏覽器上測試響應(yīng)頁面。本質(zhì)上,您在真實設(shè)備上租用時間,并且可以在瀏覽器中查看其屏幕。沒有要設(shè)置或維護的軟件。
除實時測試外,某些服務(wù)還包括自動測試API,使您可以運行腳本并檢查樣式回歸或損壞的用戶界面。
LambdaTest提供了2,000多種設(shè)備,操作系統(tǒng)和瀏覽器的組合。功能包括:
測試localhost開發(fā)PC上運行的頁面
使用集成的開發(fā)人員工具進行調(diào)試
來自不同位置的地理位置測試
在多個設(shè)備上自動生成的全屏屏幕截圖
內(nèi)置的問題跟蹤器
LT瀏覽器軟件(Windows,macOS,Linux)通過自動重新加載和滾動同步來測試和比較設(shè)備
基于硒的自動化測試API
24/7支持
真實設(shè)備測試
最后,沒有替代品可以在真實設(shè)備上進行測試。這是評估實際處理速度,觸摸控制和網(wǎng)站的自適應(yīng)網(wǎng)頁設(shè)計的最佳方法。
理想情況下,您應(yīng)該測試盡可能多的設(shè)備,但是您自己的最新智能手機可能并不代表平均硬件水平。嘗試獲得一兩年之久的中檔設(shè)備,例如二手Moto G7或iPhone 8。
在同一網(wǎng)絡(luò)上的設(shè)備可以通過在瀏覽器中輸入PC的IP地址來訪問PC的服務(wù)器。這可以ifconfig在macOS和Linux或ipconfigWindows上獲得。
您也可以使用USB電纜將智能手機連接到PC。這使您可以遠(yuǎn)程控制設(shè)備并輕松訪問其開發(fā)人員工具面板以進行調(diào)試。該技術(shù)因平臺而異,但是要在桌面版瀏覽器上調(diào)試Android Chrome,請執(zhí)行以下操作:
在Android設(shè)備上,從設(shè)置中選擇開發(fā)者選項,然后啟用USB調(diào)試。
使用適當(dāng)?shù)腢SB電纜將設(shè)備連接到計算機。首次嘗試執(zhí)行此操作時,系統(tǒng)可能會提示您確認(rèn)一個或兩個設(shè)備上的操作。
在您的PC上啟動Chrome并打開 在新標(biāo)簽頁中。確保啟用“發(fā)現(xiàn)USB設(shè)備”。
(可選)設(shè)置端口轉(zhuǎn)發(fā)-例如,8888可以將遠(yuǎn)程設(shè)備上的端口轉(zhuǎn)發(fā)到localhost:8888。
您的設(shè)備應(yīng)出現(xiàn)在列表中?,F(xiàn)在,您可以檢查新的或現(xiàn)有的標(biāo)簽,該標(biāo)簽會打開設(shè)備的開發(fā)人員工具。
要調(diào)試iPhone的Safari,請執(zhí)行以下操作:
將手機連接到Apple計算機。
在您的iPhone的Safari中打開要調(diào)試的網(wǎng)頁。
在計算機上啟動Safari。
在計算機上的Safari中,轉(zhuǎn)到開發(fā)> [您的iPhone] > [要檢查的網(wǎng)站]。這將在您的計算機上打開Safari的開發(fā)人員工具,使您可以在iPhone上調(diào)試網(wǎng)站。
一個站點,多個視圖
響應(yīng)式網(wǎng)頁設(shè)計技術(shù)使您可以創(chuàng)建一個網(wǎng)站,無論技術(shù)限制和邊界如何,任何人都可以在任何設(shè)備上查看該網(wǎng)站。使其具有出色的用戶體驗是另一回事,但是測試工具的范圍和功能仍在不斷提高。
-
2021/12/28
-
2021/12/23
-
2021/12/17
- 愛華仕斬獲“2021年度中國廚衛(wèi)行業(yè)年度智能
- 回首2021,迎戰(zhàn)2022 彩虹線開啟新征程!
- 福臨板材|福滿2021,圓夢2022
- 美特照明:2022年照明新趨勢,經(jīng)銷商如何做大
- 會自己“洗澡”的集成灶,帥康自動清洗集成灶
- 帶你設(shè)計一款功能多變,簡單實用的休閑露臺陽
- 世紀(jì)豪門吊頂:破防了!原來顏值+實力=H20
- 裝修木門選的好,噪音統(tǒng)統(tǒng)沒煩惱
- 寒潮來了,有淋浴房洗澡更保暖舒服
- 元旦特輯:歐意電器述說生活的點滴與美好
- “中國十大品牌”獲獎名單出爐,賽戈水漆榮耀
- 2021值得消費大賞 凱迪仕智能鎖榮摘兩項桂冠
- 益恩家居:新年新氣象,愛自己從好好睡覺開始
- 元旦伊始:健康新生活,從精格管道直飲水開始
- 喜迎元旦|新年新燈飾 箔晶智能照明讓酒店暖
- 吉美幫的2021 “專精特新” 深耕屋面防水體
- Aqara攜手京東成立燈光設(shè)計聯(lián)盟 打造燈飾照
- 年底廚房煥新顏,如何選擇廚電?好太太智能來
- 全鋁家具全屋莫蘭迪色系,這款美式輕奢范贏鄰
- 順趨勢·筑鳳巢·贏未來 鳳梧居門窗2021年會隆