WebDev Party 現代化網站前端基礎 Html 5 CSS (上)

今天很開心可以去參加OSSF舉辦的WebDev Party 現代化網站前端基礎,雖說是基礎課程,但講師大澤木小鐵把網頁很多ㄇㄟ ㄇㄟ角角說得非常仔細。

html

一開始大約簡介網頁發展史,接下來是XHTML宣告三種模式:

在html5,省略很多宣告

<!DOCTYPE HTML>只要下這行指令就可以了

網頁內容語系設定

<html lang="en">

網頁內容編碼設定

<meta charset="utf-8" / >

header用以組合網頁頂端的內容

< header >
< hgroub >
< h1 >
網頁內容大標
< /h1 >
< h2 >
網頁內容副標對h1在加以描述
< h2 >
< /hgroub >
< p >
hgroup 簡介,描述(h1、h2更深一層的敘述)
< /p >
< /header >

hgroup 則是用來組合所有標題標籤
nav 就被定義用作導航

   < header >
     < h1 >
       h1 大標
     < /h1 >
     < p >
       對 h1描述
     < /p >
   < /header >
   < hgroup >
     < h1 >
       h1 大標
     < /h1 >
     < p >
       對 h1 段落描述
     < /p >
   < /hgroup >
   < nav >
     < ul >
       < li >
         Link
       < /li >
       < li >
         Link
       < /li >
       < li >
         Link
       < /li >
       < li >
         Link
      < /li >
     < /ul >
   < /nav >

article 文章,可以包覆N個section

網頁表達資料通常都是 < h1 > ~ < h6 >標題,但在html 5用的是 < HTML5 – section > 來區分章節與段落(不是拿來取代wrapper),內容可以不用完整,可以是節錄某些內容,一個網頁也可以有兩個大標,層次不同,範例:

< h1 >
h1 大標
< /h1 >
< section >
< h1 >
段落 h1 大標
< /h1 >
<p >
測試中,測試中,測試中,測試中,測試中,測試中,測試中,測試中,測試中,測試中,測試中,測試中,測試中,測試中,測試中,測試中,測試中,測試中,測試中 < /p >
< /section >

outliner 網站分析網頁階層是否有符合html 5 規範,下面則是outliner外掛

< aside > 側邊攔,附屬於這個網站某個區塊,跟網站主題無關可以放廣告

表單checkbox有布林屬性,在html5 true代表預設值,false 不是預設值
< required > 代表表單欄位值一定要輸入

< i > ,< b > 在html5強調加重語氣,讓某些特定瀏覽器,可以辨別(視障人士)

ARIA,針對html控制項,讓某些特定瀏覽器,可以辨別(視障人士)

查詢HTML5、CSS、SVG、JS API....tag等適用的瀏覽器

IE某些元素不支援html 5,可用html5shivvu; 相容html 5 tag
若要偵測瀏覽器特性,建議使用 Modernizr對於(廣義的) HTML5 各種規格支援的程度,並且在 html tag(標籤)中加入適當的 class 來表現偵測後的結果。

新的html 5 tag,沒有包含任何樣式,可以配合outliner分析網頁是否有符合html 5階層

initializr針對前端快速產生html 5頁面(phototype),預先產生跨瀏覽器樣板,預先載入目前常用的技術

css

html 5連結css樣式表格式:

< link rel="stylesheet" type="text/css" href="css位置.css" >
rel :   載入樣式表
href :   css路徑(位置)
type :   html 5可以省略,因為目前預設的樣式是CSS,若以後有新的 stylesheet ,就必須定義。

在css樣式表盡量少用 @import 會造成時間延遲,在chrome 按F12,選擇Network計算載入時間

css有分幾種選擇器:

  1. 基本選擇器
  2. CSS屬性選擇器(CSS Attribute Selectors)會依據定義tag套用css,IE 6不支援
  3. 偽類選擇器

css越後面寫的css越優先套用,css套用範圍越小,權重越高, Specificity Calculator計算權重,數字越高,權重越高

在debug時,可使用Firebug Lite for Google Chrome™ 或者是 Firebug integrates with Firefox,在chrome 按F12,選擇Elements,在右邊css box,越上面代表權重越重,越下面代表權重越少

CSS 排版觀念:Box Model網頁內文指的是content,針對 < width > 以前IE Content 會包含padding與border ,若希望瀏覽器可以包含padding與border,可使用

box-sizing:border-box;
content-box   |   border-box   |   inherit

float可製作出文繞圖效果
overflow:hidden;可讓float父元素的高度撐開,有空間往上移,無空間會往下掉
IE 6讓float間距乘2倍解法

圖片取代標題文字會有效能問題,text-indent:-99999px;
改用

text-indent:100%; 文字縮排

white-space:nowrap; 不要折行

overflow:hidden; 滿出去,不要顯示

文字隱藏,圖片顯示

讓wraper網頁置中對齊

position:relative; 若實做下拉式選單,要在wraper裡下絕對定位,下拉式選單才會相依於wraper

margin:0 auto; 0代表上面位置、下面位置,auto代表左邊位置、右邊位置,將上、下面位置設0,上、下面不會有任何空隙

width:960px; 設定網頁大小為960px

css 字型

@font-face{
font-family:FontName(定義字型);
src:url(font-url);
}
body{
font-family:FontName(定義字型);
}

若使用就是字(中文字型)需要收費

inline-block把行內元素變成區塊元素,從IE 7開始支援,字句沒有照著inline-block走,會造成字與字之間的空隙,解法如下:

  • < div >< div >< div >< div >
  • < div >< div ><--
    -->< div >< div >

瀏覽器都有設定屬於自己的樣式,可使用css reset或是yahoo自己開發的Yahoo! recommends YUI 3.清除瀏覽器樣式

鐵神大大提醒盡量不要使用css hack,以免日後IE改版,又把以前的tag吃進來

以下是鐵神大大提供幾個實用的工具:

  1. 編輯器
  2. 微軟網路硬碟
  3. The Web Developer Wonderland存檔即時更新網頁頁面
  4. Bootstrap//格線、icon font
  5. 今日 Google 塗鴉:CSS Sprites 的原理
  6. Google Analytics (分析)
  7. css 範例
  8. Conditional Comments [if IE] : IE 專用 (IE only) 條件式 HTML 註解的語法

鐵神github投影片、相關範例

參考資料:

留言

  1. 很棒的整理!

    PS: [微軟網路硬碟] 的連結壞掉囉 ^^

    回覆刪除
  2. 作者已經移除這則留言。

    回覆刪除
  3. 有幫助到你就好,這是鐵神的錄影檔,你可以去觀看

    http://goo.gl/PMeUg

    :)

    回覆刪除

張貼留言

熱門文章