《實用技巧》——讓你的網站變成響應式的3個簡單步驟


 如今,一個網站只在桌面屏幕上好看是遠遠不夠的,同時也要在平板電腦和智能手機中能夠良好呈現。響應式的網站是指它能夠適應客戶端的屏幕尺寸,自動響應客戶端尺寸變化。在這篇文章中,我將向您展示如何通過3個簡單的步驟輕松地使網站變成響應式(Responsive)。

您可能感興趣的相關文章

 

1 – 布局

  當創建一個響應式網站,或讓現有的網站變成響應式的,首先要關注的元素的布局。我在建立響應式的網站,總是先創建一個非響應的布局,頁面寬度固定大小。如果非響應版本完成得非常不錯,我再添加媒體查詢(Media Queries)和響應式代碼。這種操作方式更容易實現響應式特性,在同一時間專注於一個任務。

  當你已經完成了無響應的網站,做的第一件事是在你的 HTML 頁面,粘貼下面的代碼到<head>和</head>標簽之間。這將設置屏幕按1:1的尺寸顯示,在 iPhone 和其他智能手機的瀏覽器提供網站全視圖瀏覽,並禁止用戶縮放頁面。

 

1
2
3
<meta name= "viewport"  content= "width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no" >
<meta http-equiv= "X-UA-Compatible"  content= "IE=edge,chrome=1" >
<meta name= "HandheldFriendly"  content= "true" >

 

  現在是時候添加一些媒體查詢了。根據 W3C 網站,媒體查詢由媒體類型和零個或多個媒體查詢的條件表達式組成。通過使用媒體查詢,外觀呈現可以針對特定范圍內的輸出設備,而不需要改變內容本身。換句話說,媒體查詢讓您的網站在各種各種顯示器上看起來都很好,從小的智能手機到大的電腦屏幕等等。

  媒體查詢取決於你的網站布局,所以對我來說為您提供一個現成可以使用的代碼片段有點困難。但是,下面的代碼對於大多數網站都是一個很好的起點。在這個例子中,#primary 是主要內容區域,#secondary 是側欄。

  從代碼中你可以看到,我定義了兩種規格:首先有一個最大寬度為1060px,為平板電腦優化的橫向顯示。#primary 占在其父容器寬度的67%,#senondary 占30%,再加上3%的左外邊距。 第二個規格是用於平板電腦和更小的屏幕尺寸。

  由於智能手機的屏幕尺寸小,我決定給 #primary 設置100%的寬度,#secondary 也設置100%的寬度,他將在 #primary 下面。 正如我已經說過的,你可能必須要對這段代碼位進行修改才能適應您的網站的具體需求。

 

1
2
3
4
5
6
7
8
9
10
11
/* Tablet Landscape */
@media  screen  and ( max-width 1060px ) {
     #primary {  width : 67% ; }
     #secondary {  width : 30% margin-left : 3% ;} 
}
 
/* Tabled Portrait */
@media  screen  and ( max-width 768px ) {
     #primary {  width : 100% ; }
     #secondary {  width : 100% margin : 0 border : none ; }
}

  完成以后,讓我們看看你的布局是如何響應的。要做到這一點,我用這 Matt Kersley 創建的一款非常的響應式測試工具

 

2 – 媒體

  一個響應式的布局是實現響應網站的第一步。現在,讓我們把注意力集中在另外一個現代化網站非常重要的方面:媒體,如視頻或圖像。 下面的 CSS 代碼將確保您的圖像將永遠不會大於他們的父容器,代碼非常簡單,適用於大多數網站。請注意,IE6 等舊的瀏覽器不支持 max-width 指令。

 

1
img {  max-width 100% ; }

 

  雖然上述技術是有效的,有時你可能需要有更多的圖像控制權,例如根據客戶端的顯示大小,顯示不同的圖像。

  這是由 Nicolas Gallagher 發明的好方法。讓我們看看 HTML:

 

1
<img src= "image.jpg"  data-src-600px= "image-600px.jpg"  data-src-800px= "image-800px.jpg"  alt= "" >

  

  正如你可以看到,我們使用 data-* 屬性來存儲替換圖像的 URL。現在,讓我們使用強大的 CSS3 來為匹配 min-device-width 條件的媒體指定替換圖像:

 

1
2
3
4
5
6
7
8
9
10
11
@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 );
     }
}

  

  令人印象深刻,是不是?現在,讓我們來看看另一個在今天的網站中非常重要的媒體——視頻。由於大多數網站使用的視頻來自第三方網站,我決定把重點放在 Nick La 的彈性視頻技術,這種技術可讓您嵌入的響應式的視頻。

  HTML:

1
2
3
<div  class = "video-container" >
     <iframe src= "http://player.vimeo.com/video/6284199?title=0&byline=0&portrait=0"  width= "800"  height= "450"  frameborder= "0" ></iframe>
</div>

  

  CSS:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
.video-container {
     position relative ;
     padding-bottom 56.25% ;
     padding-top 30px ;
     height 0 ;
     overflow hidden ;
}
 
.video-container iframe, 
.video-container object, 
.video-container  embed  {
     position absolute ;
     top 0 ;
     left 0 ;
     width 100% ;
     height 100% ;
}

  在你的網站上應用了這些代碼后,嵌入的視頻也是響應式(Responsive)的了。

 

3 – 字體

  本教程的最后一步絕對非常重要,但往往被網站開發人員忽視——字體。到現在為止,大多數開發人員(包括我自己)使用像素來定義字體的大小。雖然像素在普通網站使用是OK的,但是對於響應式網站來說應該有響應式的字體。事實上,一個響應式的字體大小應關聯它的父容器的寬度,這樣它才可以適應客戶端的屏幕。

  CSS3 規范引入了一個新的單位叫 rem,和 em 類相似,但相對於 HTML 元素來說, rem 更易於使用。

  rem 是相對於 HTML 元素的,不要忘了重置 HTML 的字體大小:

 

1
html {  font-size : 100% ; }

  

  完成后,您可以定義響應式的字體大小,如下所示:

 

1
2
3
@media ( min-width 640px ) { body { font-size : 1 rem;} }
@media ( min-width : 960px ) { body { font-size : 1.2 rem;} }
@media ( min-width : 1100px ) { body { font-size : 1.5 rem;} }

  請注意,舊瀏覽器不支持 rem 單元,所以不要忘了實現一個替代。

  這就是今天的所有內容了,希望你會喜歡這個教程!記得推薦和分享啊!

 

 

原文鏈接:Making a website responsive in 3 easy steps

編譯來源:夢想天空 ◆ 關注前端開發技術 ◆ 分享網頁設計資源


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM