Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Web design

Frank
July 04, 2016

Web design

for 2016 NUU IM summer training course

Frank

July 04, 2016
Tweet

More Decks by Frank

Other Decks in Programming

Transcript

  1. What’s HTML ? (造車子) • HTML is a markup language

    for describing web documents (web pages). • HTML stands for Hyper Text Markup Language • A markup language is a set of markup tags • HTML documents are described by HTML tags • Each HTML tag describes different document content
  2. A small HTML document: (一部車子) <!DOCTYPE html> 聲明這份文件格式為 html <html>

    <head> <title>什麼也沒有的車</title> <link rel=“stylesheet” type=“text/css” href=“樣式檔路徑"> </head> <body> <h1>我是一台車</h1> <p>雖然你現在看不出來…</p> <script src=“腳本檔路徑”></script> PHP、ASP、JavaScript… </body> </html>
  3. TAG cont. Tag Description <b> 寬體 <del> 刪除線 <i> 斜體

    <pre> 保留區塊內的空格、換行 <small> 小字體 <strong> 粗體 <u> 底線
  4. Symbols Symbol Html © &copy; < &it; > &gt; “

    &quot; & &amp; 半形空白 &nbsp; more w3cSchool
  5. (七傷拳)內功心法 一練七傷,七者皆傷 • 第一式: 使用 css 對指定的區塊進行屬 性設定。 傷人七分,損己三分! •

    第二式: 在 html 標籤內增加屬性。 <input id=“name” type=“text”> <img src=“圖片路徑” width=“60” height=“80”>
  6. 但是呢,我建議這兩種都不要使用 • 還記得第一張投影片如何引入 css 檔案 嗎 ? 請在撰寫 css 一律使用

    link 引入外部檔案,在寫 js 時同樣請使用 script 去引入外部檔案,原因是… • W3C (world wide web) 老大說的
  7. 我知道這樣很沒說服力, 但是… • 很多人喜歡在一份檔案裏面寫一大堆東西,把很簡單 的功能寫成 2、3千行,把 html、php、js、css 全都 寫在一頁… •

    而且 script 還分好幾塊,css 跟屬性混合用… • 並且在 php 控制 BOM、DOM … • Ex: <h1 width=“50%” style=“width: 50px;”>…</h1>
  8. HTML 與事件相關的元素 • 在 HTML 內對於每個標籤都有提供了一些相對應的事 件提供使用,例如; – Body 中的

    onload,即表示 body 區塊載入完成後需要處理的 事件。 • 其他則還有: – onunload、onclick、ondblclick、onmousedown、 onmouseup、onmouseover、onmousemove、onkeypress、 onkeydown、onkeyup…
  9. 絕對路徑與相對路徑 • 時常我們需要在 a、link、script…下指定路徑,而路 徑分為絕對與相對兩種; • 絕對路徑,即字面意思,指哪向哪: – D://files//image//sun.png •

    相對路徑則指稱目前檔案的位置,與欲指定檔案位置: – 目前我的 index.html 置於 D://files//html//index.html – 而相對與需要指定 sun.png 的位置,則為 ../image//sun.png D files html index.html Image sun.png
  10. 為什麼要發展 HTML5? • 在早期多數撰寫 HTML 的人都不遵守,W3C所制定 的標準,因此出現許多雜亂無章、不符規格的網頁。 • 常見不符合的規格如下; –

    元素的標籤名稱大小寫混雜。 – 元素沒有合理的被結束標籤給包覆。 – 元素中使用了屬性,卻沒有指定。 – 指定元素屬性時,而未使用引號。
  11. 為什麼要發展 HTML5? • 鑒於上述問題,因此 W3C 決定放寬政策,制定一套 寬鬆標準,即 HTML5。 • HTML5

    的標準十分寬鬆,不再提供文件定義。 • 以往於 HTML4 時必須撰寫: – <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> • 在支援 HTML 5 的瀏覽器下僅需撰寫: – <meta charset="UTF-8">
  12. HTML5 中省略的屬性值 • HTML4: – <input type=“text” readonly=“readonly”> • HTML5:

    – <input type=“text” readonly> • 諸如此類可省去的標籤還有; – readonly、disabled、selected、defer、ismap、nohref、 noshade、nowrap、multiple、noresize
  13. XML 與 HTML 區分 • XML 是一種資料格式,常用於資料傳送。 • XML 下若非包裹性元素,則會在角括號

    內以斜線結尾。 Ex: <我的家 版本=“1.0“ /> • 而 HTML 5 下建議不要使用 XML 才需要的斜線 – <img alt=“沒有圖片”>
  14. 語意化的元素標籤 • Article – 表示一篇完整的文章,如 blog 文章、短文、 回覆… • 使用

    header 定義標題。 • 使用 footer 定義註腳。 • 使用 section 分割段落。 • 使用 article 作為附屬文章。
  15. 語意化的元素標籤 cont. • section 亦可由多個 article 組成一篇文章。 • section 中通常會包含至少一個由

    h* 所定義的標題。 • section 內亦可嵌套多個 section,表示子區塊。 * section 與 article 的差異; – section 應用於區分不同的區塊。 – 而 article 則應側重於制定一塊獨立、完整的內容。
  16. 語意化的元素標籤 cont. • 其他語意區塊 – – nav,用於定義導覽列、側邊導覽列、底部導覽… – aside,頁面的附屬資訊,一般用於側邊欄。 –

    header,頁面標題資訊,可包含多個 h*。 – footer,標註版權、資訊、作者等。 – figure,用於表示一塊獨立的「圖片區域」。
  17. 更方便的工具… • <time>、<date>、<calendar> • 早期以前的人很苦,想要一個小日曆唯一的做法就是 自己寫 js … • 在後來有

    jQuery 可以使用 jQuery ,但是還得寫一 幾行… • 而現在你只需要用這個標籤即可使用
  18. meta • 在許多 html 格式中我們時常會見到 meta,其作用為指定一些 name-value 所對應的資訊,例如指定作者; – <meta

    name=“author” content=“Frank”> • 這麼做將有助益搜尋引擎識別。 • 而 meta 還可以指定一項屬性 http-equiv,該項屬性的作用為向 瀏覽器傳送一些有意義的資訊,幫助瀏覽器正確處理網頁的內容。
  19. http-equiv • 指定網頁過期時間,若超過則從 server 從新下載。 – <meta http-equiv=“Expires” content=“Sat 27

    16:12:36 CTS 2008> • 指定禁止瀏覽器存取離線內容。 – <meta http-eqiv=“Pragma” content=“no-cache”> • 過長時間自動更新,(超過兩秒)。 – <meta http-eqiv=“Refresh” content=“2;URL=http://www.google.com”> • 設定 Cookie • 設定字元
  20. 常見的開發工具 • Editor – Notepad++ – vi / Emacs –

    Atom – Visual Studio Code – Brackets • IDE – Aptana / eclipse – Dreamweaver – Frontpage • Online Editor – Jsfiddle – JS Bin – CodePen – codepad • Online IDE – Cloud 9 – Koding – Codinggroud – runnalbe
  21. Popular ST plugins • AutoFileName • Bootstrap Snippets • BracketHighLighter

    • ConvertToUTF8 • CSScomb • DocBlockr • GitGutter • Handlebars • Hooks • Iconfont snippets • JavaScript Beautify • jQuery • JSHint Gutter • Libraries form CDN • MarkdownEditing • Material Theme • Nodejs • SFTP • SideBarEnhancements • Package Control
  22. Browser • Chrome stable / beta / dev / canary

    • Firefox • IE 8 / 9 / 10 / 11 / Edge • Safari • Opera
  23. CSS 漂亮的車 • Css 是什麼? 基本上資管導論應該有交… 沒辦法我還是說一下廢話了 • CSS is

    a stylesheet language that describes the presentation of an HTML (or XML) document.
  24. CSS cont. • 寫 CSS 請先開一個 .css 副檔名的檔案 • 然後在裡面開始撰寫你要寫的

    CSS 內容 • CSS 中有一項屬性 @import url(“位置”); – 該屬性作用為引入一個外部 css 檔,作用同 link,建議使用 link。
  25. CSS cont. – Basic Selectors • Type 元素名稱 • Class

    .class 名稱 • ID #ID 名稱 • Universal *所有的元素 • Attribute 所有符合[屬性=值]的元素 – Combinators • Adjacent sibling (A + B) A 接在 B 之後的元素 • General sibling (A ~ B) 前面有 A 的所有 B 元素 • Child (A > B) 父元素為 A 的所有 B 元素 • Descendant (A B) A元素中 所有的 B 元素
  26. CSS cont. – Pseudo-elements • ::after 元素後面插入新的內容 • ::before 元素前面插入新的內容

    • ::first-letter、::first-line 該元素的第一個字、首行 – Standard pseudo-classes • :default 元素一開始的預設 • :focus、:visited 游標點下到下次點時、點過的 • :hover、:active 游標指到的連結、游標點下時 • :first-child、:last-child 首個&最後一個子元素 • :nth-last-child(an+-n) an:元素數量,-n 欲選取數量
  27. CSS cont. properties selector – [attr=value] 屬性中符合value的元素。 – [attr~=value] 屬性中包含value的元素,必須有空格隔開。

    – [attr^=value] 屬性中以value開頭的元素,可為連字。 – [attr|=value] 屬性中包含首個value的元素,可為連字。 – [attr$=value] 屬性中以value結尾的元素,可為連字。 – [attr*=value] 屬性中以包含value的元素,可為連字。
  28. CSS cont. Color System • 色彩學上有許多種配色系統 – – RGB (三原色)

    – CMYK (印刷四色) – HSL (色相、飽和度、亮度) – HSB、HSV (色相、飽和度、明度)
  29. CSS cont. Color System • RGB (rgba) #000000 -> black

    -> 0, 0, 0 #c0c0c0 -> silver -> 192, 192, 192 #ff0000 -> red -> 255, 0, 0 • HSL (hsla) 色相 hue、飽和度 saturation、亮度 lightness – H ∈ [0, 360) – s, l ∈ [0,1] mozilla
  30. CSS cont. Color System RGB to HSL Ex: • #00

    00 00 Max = min hsl(0, 0%, 0%) • #c0 c0 c0 • Max = min • L = ½ (192 / 255 + 192 / 255) • hsl(0, 0, 75) • #fc 80 3a -> 252, 128, 58 • 0.99, 0.50, 0.23 • Max = 0.99 min = 0.23 max = r, & g >= b, h = 21 l = 0.61 s = 0.76 / (2-1.22) = 0.97
  31. CSS cont. Backgrounds body { background: #00ff00 url("smiley.gif") no-repeat fixed

    center; } The background-origin property specifies where the background image is positioned. The background-attachment property sets whether a background image is fixed or scrolls with the rest of the page.
  32. CSS cont. Display • Block 每個元素會佔據一行 • Inline 不會佔據一行 •

    Inline-block 不會佔行,但同時可指定width 與 height • None 隱藏元素,其不佔據空間 • Initial 使用預設 • inherit
  33. CSS cont. Position • There are four different position values:

    – static – relative – fixed – absolute
  34. CSS cont. float & clear • float 定義區塊如何浮動。 – left、right

    • clear 是否允許該區塊旁有浮動區塊。 – none – left – right – both
  35. CSS cont. media • @media 主用於制定設備類型獨有特性 • Syntax – @media

    not | noly 設備類型 [ and 特性 ] • 當瀏覽器寬度超過 1000px 時 – @media screen and (min-width:1000px) • 當瀏覽器寬度小於 1000px 時 – @media screen and (max-width:480px)
  36. CSS cont. Layouts index.html about.html product.html member.html news.html 在設計 CSS

    時,會先設置一塊共用的版型,接著使全部子頁面套用, 再各別為不同的子頁進行設計。
  37. CSS cont. Third party & tools • Google Fonts •

    Font awesome • Font library • CSScomb • W3C CSS Validation Service • W3C Markup Validation Service • Music open • 甘茶の音楽工房
  38. CSS3 translate matrix • matrix(a,b,c,d,e,f) • X 平移 30,Y 平移

    30,X、Y 縮放 1倍 – transform: matrix(1, 0, 0, 1, 30, 30); 參考資料 參考資料二
  39. CSS3 Transition 動畫 • transition-property (要變換的屬性) • transition-duration (平滑漸變持續的時間,要花多 久完成)

    • transition-timing-function (速度效果) – ease 一開始變慢,之後加速,再減速 – linear 線性,開始到結束維持不變 – ease-in 開始較慢,之後加快 – ease-out 開始速度快,之後變慢 – ease-in-out 開始較慢,之後變快,再減慢 • transition-delay (延遲後執行) 參考資料 參考資料二
  40. CSS3 Transition 動畫 • -moz-transition: background-color 4s linear; • -webkit-transition:

    background-color 4s linear; • -o-transition: background-color 4s linear; • 多屬性同時變化 – -moz-transition: left 5s linear, top 5s linear; – -webkit-transition: left 5s linear, top 5s linear; – -o-transition: left 5s linear, top 5s linear;
  41. CSS3 Animation • animation-name • animation-duration • animation-time-function • animation-delay

    • animation-iteration-count 執行次數 • animation • animation-direction 播放結束時使否以反方向撥放
  42. CSS3 Animation @keyframes example { from {background-color: red;} to {background-color:

    yellow;} } @keyframes { from | to | % { 起始 | 結束 | 進度 } }
  43. CSS 3 Translate vs Animation • Translate – 用於指定對那些 CSS

    採用動畫 • Animation – 適用於製作關鍵影格
  44. CSS 學習 • 學習 CSS 版面配置 • Mozilla developer network

    • w3cSchool • HTML5 rocks • 網頁藝術思考
  45. 引入 bootstrap • 透過 cdn 提供的內容 • 放入 link 內的

    href • 或是去boostrap 下載回來 • 建議各位先用 cdn 的方式,未來將會教 授如何用後端工具下指令統一下載第三 方套件。
  46. Min 版本跟 一般版本有什 麼不同? • 一般第三方 js 或是 css 套件,都會提供

    min 與 一般兩種版本 • 而 min 顧名思義就是輕量級的文件,因為 web 上的 文件本身並非編譯過後的執行檔,而是在執行時透過 瀏覽器解析, 因此 min 是去除空白、換行,減少執行時間與傳送檔 案的大小。 • 一般版則是未壓縮過的原始碼,一般這時下一句都會 接有興趣的人可以進去研究…
  47. Bootstrap components basic • Images • Jumbotron • Well •

    Alert • Buttons • Forms • Tables • Label other • Progress bars • Pagination • Navbar • Dropdowns • Collapse • Carousel • Modal • Tooltip • Popover • Scrollspy