最近在馬老師雲端工作室開始上了RWD的課程,索性整理一些筆記。
<!doctype html> <html> <head> <meta charset="UTF-8"> <!-- 讓網頁不會自動因手機螢幕變小而扭曲,使得RWD網頁能正常執行--> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>我的第一堂RWD</title> <link href="main.css" rel=stylesheet> </head> <body> <div> <header></header> <nav><img src="images/btn1.gif"><img src="images/btn2.gif"><img src="images/btn3.gif"><img src="images/btn4.gif"><img src="images/btn5.gif"><img src="images/btn6.gif"><img src="images/btn7.gif"></nav> <aside><img src="images/logo.jpg"></aside> <span><a href="#">有名堂史</a> <a href="#">菜色導覽</a> <a href="#">最新活動</a> <a href="#">分店資訊</a> <a href="#">意見回饋</a> <a href="#">線上訂購</a> <a href="#">關於作者</a></span> <article> <h1>有名堂讓飲食富有新生命!</h1> 在這裡您可以品嘗到道地香港師傅料理的菜餚,手工捏製的點心,以及創意多元的料理,不論是熱炒、點心、飯麵粥品、煲湯、手工甜品等,全都是師傅的拿手好菜。 <h2>台北市文山區木新路3段123號</h2></article> <footer>網站企劃製作:巨匠電腦 永和分校 馬世驊 老師 版型繪製:黃千秀</footer> </div> </body> </html>
這裡面比較需要注意的地方:
1.多利用HTML預設的標籤:
在設計網頁時,可以多利用HTML預設的標籤,像是<nav></nav><header></header><sidebar></sidebar><article></article>,這樣也可以有利於SEO。關於HTML中的標籤,可以參考馬老師寫的這篇HTML介紹。
1.多利用HTML預設的標籤:
在設計網頁時,可以多利用HTML預設的標籤,像是<nav></nav><header></header><sidebar></sidebar><article></article>,這樣也可以有利於SEO。關於HTML中的標籤,可以參考馬老師寫的這篇HTML介紹。
2.插入一段meta:
在RWD中,為了要讓行動裝置能夠正確讀取RWD的版型,避免網頁因裝置螢幕變小而自動扭曲網頁的現象,我們要在<head></head>中加入下面這段語法:
更多的說明可以參考<CSS-TRICKS:Responsive Meta Tag>這篇文章。
3.不重要的圖片放在Background
不重要的圖片指的不是網友會不會看到或圖片重不重要,而是指網友不會點選到的圖片,這類的圖片我們都在CSS中用background-image來呈現,而不要在網頁中用img屬性。
4.引入外部CSS檔案
CSS部分
1.利用@media來說明適用時機
這裡主要有四個不同的media
@media screen{css樣式}
是適用於一般的電腦螢幕,除非特別還有針對大螢幕設計,不然以寬度1024px以上的都算是電腦螢幕。
@media screen and (max-width:480px){css樣式}
是適用於手機的,意思是當螢幕小於480px時適用。一般手機的螢幕寬度大多都小於480px,所以我們可以把寬度小於480px的都當作手機適用的尺寸。
@media screen and (min-width:481px) and (max-width:768px){css樣式}
意思是當螢幕小於768px,大於481px的情況。這是給平版適用的,但是是平版直著拿的情況,因為一般平版橫著拿的時候寬度就是1024px了,所以一般來說可以直接適用電腦螢幕的格式,所以我們只需要設計平版直著拿的時候所看到的畫面。
@media print{css樣式}
這是給印表機列印時使用的
2.適當的使用display:none
適當的使用CSS中的display:none把不需要呈現的區塊隱藏起來。
3.印表機的設計
印表機的CSS中,比較特別的是長度和寬度的單位要用cm,或者直接用%來表示,而文字大小則要用pt來表示。
在列印時背景圖片並不會自動顯示出來,需要另外於列印時勾選「列印背景圖片」。
4.行動裝置的長度、寬度設計
行動裝置的寬度常根據想要的寬度用%來改變,而高度就用auto。一般來說,相當常用的是width:100%; height:auto,或如果左右要留邊的話就用width:80%。
5.並排呈現
在這個例子中,我們可以看到aside和article這兩個區塊是並排的,要做到這個功能,我們可以用float來達到,我們讓aside和article這兩個區塊都是float:left。最後有一個很重要的動作,是因為aside和article這兩個區塊都浮起來,所以下面的footer會趁虛而入,這時候在footer的區塊,我們要使用clear這個指令(clear:both)把float造成的效果清除掉。
6.關於水平置中
如果是區塊要水平置中,一般使用的是margin: auto這樣的指令,但有些時候雖然是區塊,卻還是沒辦法置中,這時候要注意是不是因為我們沒有給它寬度,當沒有給它寬度的時候,預設就是和螢幕一樣寬,所以也沒辦法再將區塊進行置中的動作。
如果是一個區塊內的內容要水平置中,這時候就要用到text-align:center這樣的指令。
在aside img這個css中,為了要讓它顯示出這個區塊,我們使用了display:block,但是這會使得在aside這個區塊中,無法使用text-align:center來置中圖片,因為img已經被當成一個區塊來處理的,這時候如果我們想要將aside img這張圖片置中的話,我們要直接在aside img這個區塊的css中加入margin:auto來達到水平置中的效果。
在RWD中,為了要讓行動裝置能夠正確讀取RWD的版型,避免網頁因裝置螢幕變小而自動扭曲網頁的現象,我們要在<head></head>中加入下面這段語法:
<meta name="viewport" content="width=device-width, initial-scale=1">這段的意思是把網站呈現的寬度設定成和裝置的寬度一樣(如果裝置的寬度是320px,則網站的寬度也設成320px),而不是把960px的網頁內容所小成320px來呈現;initial-scale=1的意思,就是不要縮放網頁的意思。
更多的說明可以參考<CSS-TRICKS:Responsive Meta Tag>這篇文章。
3.不重要的圖片放在Background
不重要的圖片指的不是網友會不會看到或圖片重不重要,而是指網友不會點選到的圖片,這類的圖片我們都在CSS中用background-image來呈現,而不要在網頁中用img屬性。
4.引入外部CSS檔案
我們可以在另一個檔案把CSS寫好,然後引入這個網頁中讀取,方法是使用:
<link href="檔案路徑" rel=stylesheet>
rel指的是這個檔案和這個網頁的關係(relationship),這裡是樣式表的關係。
CSS部分
/* 適用於電腦螢幕*/ @media screen{ div{ width:880px; height:560px; margin:auto; } header{ width: 880px; height: 260px; background-image: url(images/header.jpg); } nav{ width: 880px; height: 55px; background-image: url(images/nav.gif); } nav img{ margin: 5px 25px 0px; } aside{ width:635px; height: 265px; background-image: url(images/aside.jpg); float: left; } aside img{ display:none; } span{ display: none; } article{ width:245px; height:265px; background-image: url(images/article.gif); float: left; font-size:13px; } article h1{ font-size:20px; color:brown; text-align: center; font-family:微軟正黑體; text-align: center; margin-top:40px; } article h2{ font-size:14px; font-weight: normal; text-align: center; margin-top: 30px; } footer{ width:880px; height:20px; background-image: url(images/footer.gif); clear:both; font-size:13px; text-align: center; } } /* 適用於印表機列印時*/ @media print{ div{ width:80%; height:auto; margin:auto; } header{ width: 880px; height: 260px; background-image: url(images/header.jpg); display:none; } nav{ width: 880px; height: 55px; background-image: url(images/nav.gif); display:none; } nav img{ margin: 5px 25px 0px; } aside{ width:100%; height: auto; background-image: none; float: none; text-align: center; } span{ display: none; } article{ width:100%; height:auto; background-image: none; float: none; font-size:16pt; } article h1{ font-size:20pt; color:brown; text-align: center; font-family:微軟正黑體; text-align: center; margin-top:40px; } article h2{ font-size:16pt; font-weight: normal; text-align: center; margin-top: 30px; } footer{ width:100%; height:auto; background-image: none; clear:both; font-size:13px; text-align: center; } } /* 適用螢幕寬度小於480px的裝置(當螢幕小於480px時)*/ @media screen and (max-width:480px){ div{ width:100%; height:auto; margin:auto; } header{ width: 880px; height: 260px; background-image: url(images/header.jpg); display:none; } nav{ width: 880px; height: 55px; background-image: url(images/nav.gif); display:none; } nav img{ margin: 5px 25px 0px; } aside{ width:100%; height: auto; background-image: none; float: none; } aside img{ display:block; margin: auto; } span{ width:80%; margin: auto; height:auto; text-align: center; display: block; padding-top: 30px; } article{ width:80%; height:auto; background-image: none; float: none; font-size:13px; margin: auto; } article h1{ font-size:20px; color:brown; text-align: center; font-family:微軟正黑體; text-align: center; margin-top:40px; } article h2{ font-size:14px; font-weight: normal; text-align: center; margin-top: 30px; } footer{ width:100%; height:auto; background-image: none; clear:both; font-size:13px; text-align: center; display: none; } } /* 適用於平版直著拿的情況(平版橫著拿的情況就和電腦螢幕相同)*/ @media screen and (min-width:481px) and (max-width:768px){ div{ width:100%; height:auto; margin:auto; } header{ width: 880px; height: 260px; background-image: url(images/header.jpg); display: none; } nav{ width: 100%; height: auto; background-image: none; text-align: center; padding-bottom: 30px; } nav img{ margin: 5px 5px 0px; } aside{ width:100%; height: auto; background-image: none; float: none; text-align: center; } aside img{ display:inline-block; } span{ display: none; } article{ width:80%; height:auto; background-image: none; float: none; font-size:16px; margin: auto; } article h1{ font-size:24px; color:brown; text-align: center; font-family:微軟正黑體; text-align: center; margin-top:40px; } article h2{ font-size:20px; font-weight: normal; text-align: center; margin-top: 30px; } footer{ width:100%; height:auto; background-image: none; clear:both; font-size:16px; text-align: center; } }CSS的部分看起來雖然很長,但可以分成幾個重點
1.利用@media來說明適用時機
這裡主要有四個不同的media
@media screen{css樣式}
是適用於一般的電腦螢幕,除非特別還有針對大螢幕設計,不然以寬度1024px以上的都算是電腦螢幕。
@media screen and (max-width:480px){css樣式}
是適用於手機的,意思是當螢幕小於480px時適用。一般手機的螢幕寬度大多都小於480px,所以我們可以把寬度小於480px的都當作手機適用的尺寸。
@media screen and (min-width:481px) and (max-width:768px){css樣式}
意思是當螢幕小於768px,大於481px的情況。這是給平版適用的,但是是平版直著拿的情況,因為一般平版橫著拿的時候寬度就是1024px了,所以一般來說可以直接適用電腦螢幕的格式,所以我們只需要設計平版直著拿的時候所看到的畫面。
@media print{css樣式}
這是給印表機列印時使用的
2.適當的使用display:none
適當的使用CSS中的display:none把不需要呈現的區塊隱藏起來。
3.印表機的設計
印表機的CSS中,比較特別的是長度和寬度的單位要用cm,或者直接用%來表示,而文字大小則要用pt來表示。
在列印時背景圖片並不會自動顯示出來,需要另外於列印時勾選「列印背景圖片」。
4.行動裝置的長度、寬度設計
行動裝置的寬度常根據想要的寬度用%來改變,而高度就用auto。一般來說,相當常用的是width:100%; height:auto,或如果左右要留邊的話就用width:80%。
5.並排呈現
在這個例子中,我們可以看到aside和article這兩個區塊是並排的,要做到這個功能,我們可以用float來達到,我們讓aside和article這兩個區塊都是float:left。最後有一個很重要的動作,是因為aside和article這兩個區塊都浮起來,所以下面的footer會趁虛而入,這時候在footer的區塊,我們要使用clear這個指令(clear:both)把float造成的效果清除掉。
6.關於水平置中
如果是區塊要水平置中,一般使用的是margin: auto這樣的指令,但有些時候雖然是區塊,卻還是沒辦法置中,這時候要注意是不是因為我們沒有給它寬度,當沒有給它寬度的時候,預設就是和螢幕一樣寬,所以也沒辦法再將區塊進行置中的動作。
如果是一個區塊內的內容要水平置中,這時候就要用到text-align:center這樣的指令。
在aside img這個css中,為了要讓它顯示出這個區塊,我們使用了display:block,但是這會使得在aside這個區塊中,無法使用text-align:center來置中圖片,因為img已經被當成一個區塊來處理的,這時候如果我們想要將aside img這張圖片置中的話,我們要直接在aside img這個區塊的css中加入margin:auto來達到水平置中的效果。
0 意見:
張貼留言