具有靈活變動寬度特性的布局,也被稱為流式布局,這種布局會根據(jù)網(wǎng)頁瀏覽器的窗口大小相應地調(diào)整自己的寬度。在這類布局中,容器中的主體部分的寬度以當前瀏覽器的窗口寬度為基準,按照一定的百分比進行定義。當瀏覽器的尺寸發(fā)生變化時,布局也發(fā)生變化,因為用戶調(diào)整窗口的操作已經(jīng)改變了布局所依賴的基準。換句話說,這類布局中各區(qū)域的寬度會隨著用戶瀏覽器窗口的調(diào)整自動變化。所以,如果用戶覺得正在瀏覽的文章的行寬不是很合適,通過簡單地調(diào)整窗口尺寸,內(nèi)容區(qū)域就會自動進行調(diào)整。
這類布局中,布局元素之間的關系至關重要,因為布局中子元素的寬度是以父元素的百分比設置的(不是相鄰的元素)。例如,如果布局容器的寬度設置為90%(他的父元素為瀏覽器窗口),導航區(qū)的寬度設置為80%,那么導航區(qū)的寬度就是瀏覽器寬度的72%(1×0.9×0.8=0.72)。由此可見,設計流式布局需要對設計的結構有深度的了解。對設計師而言,過程也許痛苦,但是成功的設計會讓網(wǎng)站更加靈活地面對使用不同終端的用戶[注釋]。
流式布局能夠盡可能多地使用瀏覽器的可用空間,設計師可以有足夠的空間來平均排布頁面中的內(nèi)容。設計得當?shù)牟季挚梢员3挚瞻讌^(qū)域始終一致,不管瀏覽器或者屏幕的分辨率如何變化,這樣的設計顯得更加一致并且對用戶友好。同時,這類布局也消除了低分辨率顯示器上刺眼的水平滾動條。
和固定寬度布局不同,流式布局賦予用戶更大的自由來調(diào)整布局的寬度。
和固定寬度布局不同,流式布局賦予用戶更大的自由來調(diào)整布局的寬度。伴隨著這種自由,青島網(wǎng)站設計師將嚴格、一致的像素布局轉(zhuǎn)移到一種更加靈活(也因此更有風險)的環(huán)境中來。這時對網(wǎng)站中特定元素之間比例關系的定義變得相當抽象和困難。這也正是多數(shù)設計師避免使用流式布局的原因,這種布局剝奪了設計師在像素級精度上預測定位元素的能力。
設計師在用相對值替代絕對值的過程中,經(jīng)常將這些值進位或者去位(例如,將15.43333% 變成15.43% 或者15%),這樣設計就變得更加不精確 。最后的設計也許在一些低分辨率屏幕上表現(xiàn)良好,但是在高分辨率情況下會發(fā)生奇怪的現(xiàn)象,諸如布局中顯著的空白、內(nèi)容區(qū)太寬難以閱讀等。
事實上,內(nèi)容區(qū)過寬的結果是流式布局最顯著的缺點。由于內(nèi)容區(qū)的寬度取決于用戶視窗的大小,寬屏的用戶會發(fā)現(xiàn)每一行都是如此的長,以至于閱讀起來很不舒服。如果一個使用流式布局的頁面中沒有這么多的文字,用戶將看到孤零零的一行字,側(cè)邊欄高得非常不協(xié)調(diào),周邊還充斥著大量的空白。
為了獲得最佳的閱讀效果(每行47 到86 個英文字母),設計師通常為內(nèi)容區(qū) #content-block[注釋]設置在此基礎上加10% 的寬度。除非設計的可讀性會在低分辨率情況下變得很糟糕,一般不會設置最小寬度。
在CSS 中,使用CSS 屬性“max-width”來定義布局的最大寬度。幾乎所有
的主流瀏覽器都支持這個屬性(IE 7+、Firefox 1+、Safari 2+、Opera 9.2+),當然IE 除外。
為解決這個問題,設計師通常會在內(nèi)容區(qū)域設置一個最大寬度,以此來將布局限制到一個較為理想的寬度。
代碼檢查用戶相對瀏覽器寬度的字體尺寸設置(以pt 為單位)。Tofte 認為,不管在什么情況下,使用默認12pt 的字體時,500px(像素)要比30em 寬,所以上面的代碼中使用了30em 作為布局的寬度。
其原理是,如果內(nèi)容部分的寬度大于500 像素與12 的比值乘以用戶字體的設置,就將寬度設置為30em。相反的情況下,讓寬度保持自動( 使用了“auto”屬性) 。
由于動態(tài)樣式屬性沒有包含在W3C 的CSS2 規(guī)范中,使用這種方法會讓樣式表無法通過驗證。讀者可以根據(jù)自身情況使用,能夠為市場上仍然是最流行的瀏覽器提供帶有最小寬度和最大寬度的流式布局,付出這點代價也許是微不足道的。
Clearleft 山東網(wǎng)站制作就是使用了自適應寬度布局的例子。下面兩幅圖展示了網(wǎng)站在1280 和800 像素情況下的表現(xiàn)。注意看內(nèi)容區(qū)域是如何自動調(diào)整“We makewebsites better”這句話的,在1280 像素時的兩行變成了800 像素時的三行。
在為自適應布局選擇一個合適的寬度時,使用“width :auto”或者其他的百分比值會非常合理,這樣確保了布局自動占據(jù)瀏覽器的可用空間。對于最小寬度,可以使用像素值,例如760(像素)。這個限制確保了所有自適應布局即使在最低的分辨率情況下仍保持可讀。至于最大寬度,通常的做法是使用em 值(例如90em),這樣就能在文本寬度不失控的情況下,保持不同分辨率情況下的穩(wěn)定。讓人高興的是,如果用戶調(diào)整瀏覽器的字體設置,最大寬度會發(fā)生相應的變化。
一個經(jīng)典的計算這個比例的方法是,通過將給定像素高度元素與容器的尺寸相除得到的字體大?。瓷舷挛模?。
在實現(xiàn)自適應布局時,我們使用了相對值來表示外邊距和內(nèi)邊距(當時,是相對于視口的寬度),這樣當窗口尺寸變化時,外邊距和內(nèi)邊距同樣發(fā)生變化,同時保持了比例和尺寸一直靈活。這種技術被稱為“concertina padding”,由Richard Rutter 提出(“Web Standards Group :Ten Questions for RichardRutter”, webstandardsgroup.org)。使用這種技術后,當頁面尺寸改變時,外邊距和內(nèi)邊距同樣發(fā)生變化,同時會檢查內(nèi)容區(qū)以及文本行的長度。
Copyright All Rights GreatGoal Design co.,ltd. 魯ICP備16002128號-3