響應式設計的方法和注意點
發表日期:2016/3/27 8:25:29 文章編輯: 瀏覽次數:3224
響應式布局概念
Responsive design,意在實現不同屏幕分辨率的終端上瀏覽網頁的不同展示方式。通過響應式設計能使網站在手機和平板電腦上有更好的瀏覽閱讀體驗。

經過不停地學習和實踐,如今總結響應式設計的方法和注意點。其實很簡單。
響應式設計的步驟
1. 設置 Meta 標簽
大多數移動瀏覽器將html頁面放大為寬的視圖(viewport)以符合屏幕分辨率。你可以使用視圖的meta標簽來進行重置。下面的視圖標簽告訴瀏覽器,使用設備的寬度作為視圖寬度并禁止初始的縮放。在標簽里加入這個meta標簽。
[1](user-scalable = no 屬性能夠解決 iPad 切換橫屏之后觸摸才能回到具體尺寸的問題。 )
3. 通過媒介查詢來設置樣式 Media Queries
Media 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%; }2. 處理圖片縮放的方法
簡單的解決方法可以使用百分比,但這樣不友好,會放大或者縮小圖片。那么可以嘗試給圖片指定的最大寬度為百分比。假如圖片超過了,就縮小。假如圖片小了,就原尺寸輸出。
img { width: auto; max-width: 100%; }用
::before和::after偽元素 +content 屬性來動態顯示一些內容或者做其它很酷的事情,在 css3 中,任何元素都可以使用 content 屬性了,這個方法就是結合 css3 的 attr 屬性和 HTML 自定義屬性的功能: HTML結構:
CSS 控制:
@media (min-device-width:600px) {
img[data-src-600px] {
content: attr(data-src-600px, url);
}
}
@media (min-device-width:800px) {
img[data-src-800px] {
content: attr(data-src-800px, url);
}
}3. 其他屬性
例如 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 Queries
Ethan的文章中的“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 */}這里有一個免費模板:http://stuffandnonsense.co.uk/projects/rock-hammer/
查看演示:http://malarkey.github.io/Rock-Hammer/#panel-forms-hidden
以上來自譯文:Be For Web
-
響應式網站設計
日期:2015-07-28 瀏覽次數:2682
-
免費SSL證書申請網站topssl.cn上線
日期:2024-09-23 瀏覽次數:1929
-
如何在北京順義尋找一個踏實的網站建設公司
日期:2023-08-10 瀏覽次數:4985
-
順義網站建設:北京順義網站建設的優點
日期:2023-05-25 瀏覽次數:5366
-
選擇網站公司需要考慮哪些因素
日期:2023-05-25 瀏覽次數:4206
-
北京模板建站
日期:2023-03-28 瀏覽次數:4422
-
你的平常網站實際上是好的5個原因
日期:2019-02-18 瀏覽次數:2587
-
設計網站的設計師要練習適當的文字間格。
日期:2015-07-17 瀏覽次數:2698
-
您的網站轉換率應該是多少
日期:2019-01-23 瀏覽次數:2610
-
網站優化_您應該為您的企業創建博客嗎?
日期:2019-08-01 瀏覽次數:3090
-
在您的網站上包含8個步驟重新設計清單
日期:2019-03-04 瀏覽次數:2572










