偶然註冊的一個線上課程平台,發現他們有些免費的課程可上。剛好有幾門課當初都是我自學的,現在有機會就來看看系統的學習。
呃…先寫在前面好了。這門課的內容是以初階初學者為導向的,每個小節的知識點不多,能輕鬆理解。
但對於已經有程設基礎的人來說,這門課顯得太簡單,我大概花不到他建議學習時間的一半就完成,這還不算上做筆記的時間,花最久的時間可能是把它寫成網誌!?
(這門課的受眾本來就不是我,還硬要來湊熱鬧 XDDD)
網頁構成有 3 大基本要素:
嚴格說來,我的網誌分類有點不太精準。因為網頁三兄弟中 HTML 與 CSS 並不屬於程式語言,不過我也懶得重新換個分類了,反正還有架構這個詞勉強兜著。
網頁三兄弟(圖片來源:HTML 主要作用在於定義網頁內有什麼內容元素,如文字、照片、影音、超連結…等。
以建構房屋為比喻,建房時大量異種建材來建造地基、牆面,並定義房屋內部的格局與用途。HTML 就像是建材,依照不同用途會使用不同建材與工法。舉例來說,對於書寫文字的部分,就會使用段落標籤 <p>
;要放置影片,就會使用<video>
標籤。
正確的標籤使用不但方便後續的維護外,也比較容易在搜尋引擎中取得較好的排名,增加網頁曝光率。但若使用了錯誤標籤,就像使用不防水材質來建造浴室,你大概三五時就得抓漏整修,耗時費力不說,還不能根治,除非打掉重建。
網頁架構與標籤(圖片來源:目前 HTML5 是 HTML 最新的修訂版本,又簡稱 H5。此次更新還滿重大,畢竟是時隔 17 年一次的更新,此次更新新增了 <video>
跟 <audio>
,將影音格式從 Flash 依賴中解耦出來、 <canvas>
可以直接在瀏覽器中繪圖。另外移除幾個 CSS 可取代的標籤,如:<center>
與 <font>
。想知道詳細的可以去看看 W3 官網。
如果延續建房的比喻,HTML 是房屋結構,那 CSS 大概是裝潢、JavaScript 就是電器用品吧?因為 HTML 只是骨架,無法提供漂亮的視覺效果,因此需要其他兩兄弟的支援。
選出下列描述正確的選項
HTML 主要功能為何呢?
HTML 是由標籤(tags) 與 內容(content) 2 個部分所組成。多數情況下標籤是成對存在的,可再細分成開始標記與結束標記:
<p>
。</p>
。目前我所想到的不成對標籤有:<br>
、<hr>
、<img>
。
是說中間標籤是什麼鬼?是指子標籤嗎?
這邊是個小小的實作題。它給了份有誤的 HTML 標籤,要我們把它改成正確標籤:
訂正完後長這樣:
HTML 文件結構是一種巢狀結構(Nested Structure),好像又有人把它稱為階層樹狀結構。簡單來說就是一層包一層吧。彼此互為父子層關係,外為父、內層為子。
根據的巢狀特性,在實作會因應網頁設計的需求,不斷的拓展很多子層。而這些層次間的關係我們可稱為層次結構,不同的層次結構,會呈現不同的結果。
HTML 巢狀與階層性(圖片來源:我是子層,正在找一個 div 父層,幫幫我。
答:
幫 <h3>
新增一個子層 <p>
,並寫下「Hello HiSKIO」。
答:
<html>
、<head>
、<body>
網頁的基本結構,應至少具備 <html>
、<head>
、<body>
這三個標籤元素才能正常顯示運作。一份正常的 HTML 網頁呈現的樣子如下:
<html>...</html>
此標籤是網頁中不可或缺的標籤,且具有不可重複性。它是整個網頁最上(外)層的標籤,網頁中所有的標籤都被包覆其中。
<head>...</head>
也是必不可少且獨一無二的標籤,若出現一組以上,可能會造成瀏覽器的混亂。它放置於 <html>
下的第一個標籤,主要記錄網頁相關基本設置與描述,但內容並不會對使用者顯示。
<body>...</body>
也是具備必要性與唯一性的標籤。用來呈現網頁主要內容給使用者,包括文字、圖片、表單和
等。
<head>
裡面的會被在螢幕上顯示給使用者<p>
標籤才算完整<html>
標籤是網頁最內層的標籤在電腦語言中,註解(comment)是重要的一個組成部分。
直接可以告訴別人你程式碼的目的,增強程式可讀性、可維護性,還能避免坑害同事(不過,最後到底是避免坑害同事還是把同事推入深淵,那就是另外的故事了 XDDD)。它會在程式碼進入瀏覽器時被忽略,因此不會顯示在網頁上。
在 HTML 中,註解符號是由 <!--...-->
組成,可同時用於一行或多行註解:
把 <p>
標籤與內容變成一段註解
答:
<strong>
、<em>
、<mark>
雖說 CSS 才是美化的主力,但在純文字文件中還是會做些簡單的強調,如:粗體、斜體、刪除線跟文字突顯的功能,這幾個功能可以透過文字樣式標籤來實現。
<strong>
粗體字
效果:變成粗體字
<em>
斜體字
效果:變成斜體字
<mark>
文字突顯
效果:變成突顯字
<del>
刪除線
效果:加上刪除線
這幾個標籤在 HTML5 可被視為特殊指標。在 HTML5 比過往更強調不同標籤的語意(Semantic Elements),也就是說這些樣式標籤不僅僅是視覺的記號,也有語意層次的標記,能幫助搜尋引擎,更理解網站的內容,使搜尋結果更加貼切。
在過往的案例中,這幾個樣式有不同標籤供使用:
粗體字:<b>
與 <strong>
bold 與 strong
<b>
這個標籤出自是 bold(粗體);而 <strong>
這個標籤,則是取自 strong(強調 / 重點)。
可以看到兩個標籤的效果在視覺上一模一樣,但 <b>
這個標籤,就僅僅是代表『加粗』,純屬視覺上的意義。而 <strong>
則有實際上的語意,表示這是一個重要的字串,得要用粗體來提醒大家。
斜體字:<i>
與 <em>
italic 與 emphasized
<i>
與 <em>
分別出自於 italic(斜體) 和 emphasized (斜體 / 強調)的字首。
兩個標籤效果如出一轍,並沒有誰多傾斜個 1 度。跟粗體字的標籤一樣,<i>
就僅就代表斜體,而 <em>
則多了分強調的意味存在。
刪除線:<s>
與 <del>
strikethrough與delete
<s>
與 <del>
則是源於 strikethrough(刪除線) 與 delete(刪除)。
兩者效果毫無二致,邏輯上也跟前面類似,用 <del>
標籤時會很明確告知瀏覽器這段文字是我要刪除掉的。
<mark>
HTML 中的標籤具有屬性,而這些屬性可以藉由各種方式去設定元素或調整它們的行為,以符合使用者的期待,例如:high 與 width。不過最常用的非屬 id 與 class,id 具有唯一性,能將網頁某個元素獨立辨識出來,而 class 可將這些元素進行分類,套用不同的效果。
而在這裡,我們將把重點放在添加 id 屬性協助我們將識別內容。
在前端技術、後端技術的 h2 標籤加上不同的 class 屬性
答:
阿不是說好把重點 id 屬性?
<div>
- 常用的容器標籤在做網頁時 <div>
是一個很常用到的標籤元素,是用來當作容器(container),用來包裹其他標籤,如:文字、連結、圖像或影音,將內文分出不同獨立區塊 (block)。
<div>
的使用會便於之後的樣式設計與互動,如:在做網站切版,我們可透過移動 <div>
,將該區塊內的元素一併調整;或是利用 CSS 給整個區塊進行整體性樣式設定;或是 JavaScript 做互動操作。
另外一些常用在切版的標籤有 <div>
<p>
與 <span>
。
<div>
:簡單來說就是一個區塊。<p>
:是一個段落。<span>
:通常會用來做標籤內的細部變化。舉例來說,網頁就是本詩詞、<div>
則是其中一首、<p>
則是段落、<span>
則是針對段落中樣式變化。做出來大概會像是這樣:
div、p 與 span
將 h2、h3 標籤分別裝入不同的 div 內做區隔
答:
你在看我的網誌時,應該會注意它會有顯眼的大標以及不同的級別的段落標題,方便大家迅速了解每段文字的大意。
這些標題,在 HTML 語法中稱為 Headings。它有 <h1>–<h6>
六種元素呈現了不同的級別的標題,<h1>
級別最高,而 <h6>
級別最低。我通常 <h1>
只會用一次,就是文章大標;最常用的則是 <h2>
;至於 <h5>
與 <h6>
我幾乎不用。
創建一個 h1 標籤,並寫下「Hello HiSKIO」
<ol>
/ <ul>
/ <li>
除了以文字段落形式之外,另外一個常用的就是列表。列表可以分成無序列表(Unordered List) 與 有序列表(Ordered List) 兩種。
無序列表(Unordered List):<ul>
和 <li>
<ul>
表此列表是無序的,<li>
則是用來列表中的每一個項目。需要注意的是 <ul>
標籤本身不具有任何效果,需與 <li>
同時使用,才能正常顯示。
有序列表(Ordered List):<ol>
和 <li>
如果想要使用有序列表,只需要將 <ul>
換成 <ol>
即可。
<img>
- 幫網頁插入一張圖片吧一圖勝千言,網站怎麼可以沒有圖呢!
前面提過 HTML 的標籤多為成對標籤,而 <img>
就是屬於其中的特例。 在 <img>
標籤中有兩個重要的預設屬性:
<video>
- 插入影片除了靜態圖片外,也可以插入動態影音。
<video>
標籤用法與 <img>
類似,都是藉由 src 屬性輸入來源、 width 和 height 來調整大小。與 <img>
標籤不同的是 <video>
是個成對標籤,這真奇怪 XDD 另外 <video>
標籤有個 controls 屬性可用,它可以顯示影片的控制選項介面。
<iframe>
- 在網頁上插入一段 Youtube 影片吧插入動態影音的方法除了<video>
外,還有 <iframe>
可用,它可將影片網站的內容嵌入到自己的網站中。除了嵌入影片網站外,也可以嵌入 Facebook 的粉絲專頁或按讚分享按鈕。
不過有些網頁為了避免點擊劫攻擊,是不允許使用 <iframe>
嵌入其他網站的。
下面有幾題觀念測驗,試著找出解答,完成這階段的小測驗吧!
選出下列對的選項
<body>
標籤用來放置網頁的主要顯示內容<html>
標籤是整個網頁最內層的標籤<head>
標籤是整個網頁最內層的標籤<body>
<head>
都是正常的狀況
選出下列錯誤的選項
關於HTML標籤屬性的描述下列何者正確?
選出正確的描述
<ul>
標籤實現<ol>
要再搭配 <li>
才能正常呈現列表的樣貌<ol>
標籤實現
選出錯誤的描述
<video>
標籤需要有src 屬性以及連結才能顯示影片<iframe>
跟 <video>
擁有同樣的功能<iframe>
可以將網頁在另一網頁裡面當你的進度條跑到 100% 後,你就會收到這張圖,恭喜你完成課程啦!
嗨!恭喜您完成 HTML 課程,掌握了新的程式技能!(圖片來源: HiSKIO 平台通知)
本文作者: 辛西亞.Cynthia
本文連結: 辛西亞的技能樹 / hackmd 版本
版權聲明: 部落格中所有文章,均採用 姓名標示-非商業性-相同方式分享 4.0 國際 (CC BY-NC-SA 4.0) 許可協議。轉載請標明作者、連結與出處!