響應(yīng)式設(shè)計(jì)方法對(duì)開發(fā)者非常有用腻扇,因?yàn)樗刮覀兊膬?nèi)容在各種設(shè)備上廣為傳播债热。不用保留幾個(gè)獨(dú)立版本的網(wǎng)站,也可以摒除諸如縮放和流式布局這些方法的弊端幼苛。
本文重點(diǎn)討論設(shè)計(jì)師遇到最多的3個(gè)響應(yīng)式設(shè)計(jì)問題窒篱,也會(huì)提供一些規(guī)避錯(cuò)誤的策略。
縮放舶沿、流式布局與響應(yīng)式
這些術(shù)語容易造成混淆墙杯,設(shè)計(jì)師常常錯(cuò)誤地交替互用。實(shí)際上括荡,每個(gè)都是布局技巧的顯著進(jìn)化過程高镐,像技術(shù)演進(jìn)那樣逐一顯現(xiàn)。
縮放布局畸冲,旨在相對(duì)縮放每一個(gè)元素嫉髓。它們會(huì)隨著窗口大小變化動(dòng)態(tài)縮放內(nèi)容,就這方面而言邑闲,它們是響應(yīng)式的算行。布局本身保持靜止,通過改變每一個(gè)元素來保持一致的表現(xiàn)苫耸。
上圖:不同分辨率下縮放布局的例子州邢,這種設(shè)計(jì)為了統(tǒng)一犧牲了易讀性。
流式布局就不一樣褪子,因?yàn)樗鼈冸S著窗口尺寸縮放容器元素量淌。通過em這類相對(duì)單位可以做到這點(diǎn)骗村,克服了縮小文字的問題。用戶主動(dòng)縮放時(shí)类少,設(shè)計(jì)就被破壞了叙身。
上圖:不同分辨率下流式布局的例子,這種設(shè)計(jì)為了易讀性犧牲了統(tǒng)一硫狞。
響應(yīng)式設(shè)計(jì)不會(huì)縮放任何東西。相反晃痴,它會(huì)根據(jù)窗口尺寸決定顯示哪些內(nèi)容残吩。
上圖:不同分辨率下響應(yīng)式布局的例子。
問題1:菜單折行
如果在頁面頂部使用了導(dǎo)航欄倘核,當(dāng)頁面展現(xiàn)在小屏幕上時(shí)泣侮,響應(yīng)式設(shè)計(jì)通常會(huì)把它“掰”成更緊湊的格式,但這并非總是有效紧唱,如果顯示區(qū)域比斷點(diǎn)更寬活尊,又不足以在一行顯示所有菜單項(xiàng)的話。結(jié)果會(huì)導(dǎo)致菜單的折行漏益。
有些方法可以解決這個(gè)問題。其一,減少導(dǎo)航欄中橫排菜單項(xiàng)的數(shù)量融虽,將它們分門別類柑肴。然后選中某類時(shí),你可以通過下拉菜單來顯示子類轻庆。
其二癣猾,減少斷點(diǎn)的數(shù)值。應(yīng)該以導(dǎo)航欄開始出問題的實(shí)際數(shù)值為準(zhǔn)余爆,而非具體設(shè)備尺寸纷宇。
其三,不同設(shè)備使用不同方式蛾方,例如滑動(dòng)抽屜像捶。
問題2:使用固定寬度圖片
內(nèi)容區(qū)域通常都隨窗口尺寸變化。所以當(dāng)固定寬度圖片超出顯示區(qū)域時(shí)转捕,圖片就被裁剪了作岖。
上圖:糟糕的固定寬度圖片例子,它太大了五芝。于是出現(xiàn)了滾動(dòng)條痘儡,內(nèi)容被推到屏幕之外。
通過給圖片設(shè)定相對(duì)單位枢步,可以避免這個(gè)問題沉删〗ツ颍或者使用支持響應(yīng)式的框架(比如Bootstrap),使用響應(yīng)式圖片class名來控制(例如class="img-responsive")矾瑰。
上圖:同樣的元素砖茸,用響應(yīng)式圖片class名的方式,滾動(dòng)條就不見了殴穴。
問題3:元素的扭曲
這有點(diǎn)晦澀難懂凉夯,但本質(zhì)上,布局顯示在小窗口上的時(shí)候采幌,所有未經(jīng)處理的列都會(huì)以行的形式呈現(xiàn)劲够。這是個(gè)問題,因?yàn)閮?nèi)容的扭曲會(huì)不經(jīng)意地改變?cè)O(shè)計(jì)的層級(jí)休傍。
上圖:列變成了行征绎,扭曲了內(nèi)容。
解決方法顯而易見磨取,但令人驚奇的是人柿,仍有很多人在糾結(jié)它:只要明確地設(shè)定元素的寬度、高度忙厌、內(nèi)邊距凫岖。如果它移出所處位置,蓋住了其他元素慰毅,可以通過將它包裹在div容器中隘截,設(shè)置外邊距,迫使它回到原本的地方汹胃。
規(guī)劃有助于避免問題
本文只討論了3種最普遍遇到的響應(yīng)式設(shè)計(jì)災(zāi)禍婶芭,還有很多其他途徑會(huì)毀了一個(gè)好的設(shè)計(jì)。預(yù)防錯(cuò)誤并不難∽偶ⅲ現(xiàn)代瀏覽器都有內(nèi)置的響應(yīng)式布局測試犀农,好好規(guī)劃設(shè)計(jì),多做測試宰掉。
原文鏈接:艾藝信息