響應式布局等於流動網格布局,而自適應布局等於使用固定分割點來進行布局。
自適應布局給了你更多設計的空間,因為你只用考慮幾種不同的狀態。而在響應式布局中你卻得考慮上百種不同的狀態。雖然絕大部分狀態差異較小,但仍然也算做差異。它使得把握設計最終效果變得更難,同樣讓響應式布局更加的難以測試和預測。但同時說難,這也算是響應式布局美的所在。在考慮到表層級別不確定因素的過程中,你也會因此更好的掌握一些基礎知識。當然,要做到精確到像素級別的去預測設943*684像素視區裡的樣子是很難的,但是你至少可以很輕鬆的確定它是能夠正常工作的,因為頁面的基本特性和布局結構都是根據語義結構來部署的。
響應式布局概念Responsive design,意在實現不同屏幕解析度的終端上瀏覽網頁的不同展示方式。通過響應式設計能使網站在手機和平板電腦上有更好的瀏覽閱讀體驗。
經過不停地學習和實踐,如今總結響應式設計的方法和注意點。其實很簡單。
響應式設計的步驟1. 設置 Meta 標籤大多數移動瀏覽器將HTML頁面放大為寬的視圖(viewport)以符合屏幕解析度。你可以使用視圖的meta標籤來進行重置。下面的視圖標籤告訴瀏覽器,使用設備的寬度作為視圖寬度並禁止初始的縮放。在標籤裡加入這個meta標籤。
[1](user-scalable = no 屬性能夠解決 iPad 切換橫屏之後觸摸才能回到具體尺寸的問題。 )
3. 通過媒介查詢來設置樣式 Media QueriesMedia Queries 是響應式設計的核心。
它根據條件告訴瀏覽器如何為指定視圖寬度渲染頁面。假如一個終端的解析度小於 980px,那麼可以這樣寫:
@media screen and (max-width: 980px) {
#head { … }
#content { … }
#footer { … }
}
這裡的樣式就會覆蓋上面已經定義好的樣式。
4. 設置多種試圖寬度假如我們要設定兼容 iPad 和 iphone 的視圖,那麼可以這樣設置:
/** iPad **/
@media only screen and (min-width: 768px) and (max-width: 1024px) {}
/** iPhone **/
@media only screen and (min-width: 320px) and (max-width: 767px) {}
恩,差不多就這樣的一個原理。
一些注意的1. 寬度需要使用百分比例如這樣:
#head { width: 100% }
#content { width: 50%; }
img { width: auto; max-width: 100%; }
src-600px="image-600px.jpg"
src-800px="image-800px.jpg"
>
CSS 控制:
@media (min-device-width:600px) {
img[src-600px] {
content: attr(src-600px, url);
}
}
@media (min-device-width:800px) {
img[src-800px] {
content: attr(src-800px, url);
}
}
例如 pre ,iframe,video 等,都需要和img一樣控制好寬度。對於table,建議不要增加 padding 屬性,低解析度下使用內容居中:
table th, table td { padding: 0 0; text-align: center; }
以上內容和代碼來自:掌心,感謝,歡迎查看我之前做過的響應式設計:查看演示
Morten Hjerde和他的同事們對2005至2008年市場中的400餘種行動裝置進行了統計(查看報告),下圖展示了大致的統計結果:
打造布局結構
我們可以監測頁面布局隨著不同的瀏覽環境而產生的變化,如果它們變的過窄過短或是過寬過長,則通過一個子級樣式表來繼承主樣式表的設定,並專門針對某些布局結構進行樣式覆寫。我們來看下代碼示例:
/* Default styles that will carry to the child style sheet */html,body{background...font...color...
}h1,h2,h3{}p, blockquote, pre, code, ol, ul{}/* Structural elements */#wrapper{width: 80%;margin: 0 auto;background: #fff;padding: 20px;
}#content{width: 54%;float: left;margin-right: 3%;
}#sidebar-left{width: 20%;float: left;margin-right: 3%;
}#sidebar-right{width: 20%;float: left;
}
下面的代碼可以放在子級樣式表Mobile.css中,專門針對行動裝置進行樣式覆寫:
#wrapper{width: 90%;
}#content{width: 100%;
}#sidebar-left{width: 100%;clear: both;/* Additional styling for our new layout */border-top: 1px solid #ccc;margin-top: 20px;
}#sidebar-right{width: 100%;clear: both;/* Additional styling for our new layout */border-top: 1px solid #ccc;margin-top: 20px;
}
大致的視覺效果如下圖所示:
圖中上半部分是大屏幕設備所顯示的完整頁面,下面的則是該頁面在小屏幕設備的呈現方式。頁面HTML代碼如下:
Media QueriesEthan的文章中的「Meet the media query」部分有更多的範例及解釋。更有效率的做法是,將多個media queries整合在一個樣式表文件中
/* Smartphones (portrait and landscape) - */@media only screenand (min-device-width : 320px)and (max-device-width : 480px) {/* Styles */
}/* Smartphones (landscape) - */@media only screenand (min-width : 321px) {/* Styles */
}/* Smartphones (portrait) - */@media only screenand (max-width : 320px) {/* Styles */
}
連結:https://juejin.im/post/6844904084554645518
聲明:文章著作權歸作者所有,如有侵權,請聯繫小編刪除