響應式網頁設計簡單入門

文章表達的中心思想就是最後的那句引用"最好的設計是儘可能少的設計"。最重要的是我意識到平時咱們都忽略了一個常識:一張未經加工的原始HTML文檔就已是響應式的了,根本不用什麼CSS media屬性或者指定不論什麼樣式。javascript

經過查看HTML代碼發現做者果真留下了一些信息,因而在twitter上找到他表達了我對他的膜拜之情以及想把如此精華的文章翻譯成中文的意願。php

做者很是爽快地答應了23333~~(X___X)~~。css

因而就有了相同奇葩的中文版本號:媽逼的站點。原文的精髓可能由於我自身對這類表達的駕馭的不夠而丟失了一些。但多少仍是能夠方便嫌英文閱讀麻煩的同窗們圍觀的了。html

 

固然以上全是扯淡。一如做者所指出的,至關諷刺。java

回到正題。各類屏幕尺寸滿天飛的時代怎樣讓站點自適應的究極解決方式:響應式設計(Responsive Design)。web

構造主要的HTML頁面

一個簡單的博客頁面

始終認爲再多口水都沒有一個生動鮮明的樣例來得實在,如下經過對一個普通HTML頁面的改造來體驗什麼是響應式設計及怎樣達到。瀏覽器

如下構造一個主要的HTML頁面,它包括站點導航菜單,正文,圖片。側邊欄。表格式的佈局以及頁腳信息。app

是個很完整而中庸的佈局。差點兒是常見的博客版面。ide

 

 

文章內容填充

剩下文章部分需要填充點內容。正好MS Word有這樣一個產生隨機文章的彩蛋。函數

用法是新建一個word文件而後打開輸入" =rand(3,10) " 再回車。當中rand 函數接收兩個參數,第一個表示要產生多少個天然段。第二個表示每段多少行。

因此上面回車後咱們會獲得一篇由3個天然段組成的文章且每段有10行。

 

而後再另存爲網頁文件:

最後可以在瀏覽器中經過查看源代碼把包括內容的<p>標籤拷貝到咱們的代碼中就能夠。

同一時候這裏有一個專門產生填充內容的站點Fillerati。可以定義篇幅。做者信息。標題等。

固然以上兩種做法多少有點裝逼與作做的感受。你全然可以隨便複製點什麼東西來做爲內容填充的 一_一|||。

填充內容後HTML變成這樣

 

最後出來的效果看起來是這種:

最後爲了讓側邊欄更有意義一點,給文章正文加上一些子標題同一時候給側邊欄裏的元素加上錨點鏈接可以在文章的子標題間進行導航。

 

主要的樣式

最後加上一些樣式讓整個頁面看起來更正常些。

咱們首先去掉body元素的默認外邊距,去掉列表元素前面默認的加點,把菜單裏的超鏈接的下劃線也去掉。

再修飾下字體及正文中的三個方塊div以及其它,最後的樣式代碼差點兒相同是這種:

當中,因爲側邊欄和文章向左浮動了。爲了讓頁腳不從最底跳到文章的後面跑到頂部去,要清除頁腳footer兩邊的浮動。

最後頁面看起來着很少是這個樣子的

動態載入樣式表

接下來的工做是讓頁面成爲響應式的。

聽起來認爲是一個全新的領域,但事實上平時咱們已經在實踐了。比方當指定元素的尺寸時,使用百分比而不是固定像素的大小時。這種元素就具有自適應屏幕的能力。最多見的就是指定元素寬度爲100%。這樣窗體縮放或屏幕不一樣一時候元素始終佔領屏幕整個寬度。

一些不太有用的實踐是針對不一樣屏幕尺寸載入不一樣的樣式表,這事實上至關於爲不一樣尺寸寫不一樣的樣式表,感受維護起來不那麼方便。

經過在引入樣式表時使用media屬性可以控制什麼尺寸的屏幕使用哪一個樣式表,因而咱們可以實現手機訪問時下載手機版樣式。電腦訪問時下載正常樣式。

 

上面代碼指定假設設備寬度小於320px則調用 "mobile.css"樣式表。

我的認爲這樣爲一個網站寫多個分別的樣式表不怎麼好。因此這裏就很少說了。

Viewport

響應式設計第一件需要作的事情就是在head標籤裏指定viewport meta屬性。

Quick Tip: Don't Forget the Viewport Meta Tag》這篇文章很是好介紹了Viewport是的原因及做用。

簡單說來在手機(iPhone Safari)上訪問網頁時它默認會對網頁進行縮放。儘量多地在屏幕上展現整個頁面的內容。而縮放以後的效果可想而知。一個在電腦上正常展現的頁面被縮放進手機屏幕(通常是240*320)裏面後。很是難閱讀。

同一時候由於默認使用縮放,那麼你事先設計好的在小屏幕上使用的樣式將不起做用。也就是說手機上展現的是電腦版本號的一個縮小版。

咱們看MDN上給出的樣例截圖。

而在代碼中指定viewport,則可以讓開發人員指定網頁視圖區域及縮放比例等。這樣就能修正由瀏覽器本身主動縮放帶來的影響。

經過咱們指定例如如下代碼:

 

 

 

表示使用設備寬度(即設備的屏幕寬度)並且縮放指定爲1也就是不縮放。

你可能會問這樣指定以後豈不是僅僅能在手機屏幕上顯示站點的部分。比方左上角。這時候正是響應式網頁設計起做用的時候了。假設你專門爲小屏幕的訪問進行了優化比方在CSS中使用media屬性(後面會講到),那麼當手機訪問時會調用對應的樣式規則,而不會僅僅顯示整個站點的一部分。

字體縮放

指定固定像素的字體大小是咱們設計中常用的方式,但假設你想字體大小更具彈性的話。不妨使用相對大小,CSS中比較常用的指定字體相對大小的單位有百分比,em以及CSS3新增的rem。

首先咱們指定整個文檔的字體大小爲100%。表示頁面字體大小爲瀏覽器默認大小的100%。

再來看看em與rem。

em單位一如他的發音它的基準單位是一個m字母的高度,同一時候它是指定相對於父級的元素中的相對大小。也就是說指定爲em的元素字體大小是經過對上一層元素的字體大小計算得來的。

 

上面外層div字體大小爲15px。同一時候指定內層p元素字體大小爲2em,因此p元素實際的字體大小爲15px*2=30px。這點可以經過查看瀏覽器開發工具裏面"計算後的樣式"獲得證明。

但需要注意的是em有個問題。正因爲他會相對於低級元素來計算本身的樣式。因此在層疊很是多的狀況下,可能出現意料以外的結果。

相關文章
相關標籤/搜索