iT邦幫忙

2021 iThome 鐵人賽

DAY 5
0
Modern Web

後轉前要多久系列 第 5

【後轉前要多久】# Day05 HTML - 語意標籤 & 引用CSS

  • 分享至 

  • xImage
  •  

HTML5具有語意的新標籤

在HTML5中新增了一些具有"語意 (Semantic)"的標籤,
用以取代隨處可見、不具任何意思甚至純粹給排版用的 <div><span>

Semantic elements = elements with a meaning.

就是希望如下圖,從左改到右 (順便讓廣大的信眾們認識更多英文單字)
(並沒有硬性規定哪個區塊一定要擺在哪個位置)

Semantic Element
W3School Semantic

這樣一來會比純粹使用<div>來的更富具體意義,增進SEO。

目前有以下具有語意的標籤:

<header> 首要區塊、標題摘要,可用於某區塊內的標題或整個網頁的標題
<nav> 導覽列,放選單連結、連到內部或外部網站
<main> 主要內容資訊,在網頁中只會出現一次
<article> 放獨立表達、獨立於上下文的文章內容(self-contained content)
<section> 與內容相關的獨立區塊,放章節、介紹、訊息
(<article><section> 沒有一定要誰包住誰)

<mark> 放被標記或被強調的文字
<details> 定義額外的細節、資訊,讓使用者可以觀看或隱藏
<summary><detail>定義一個可見的標題、摘要

<figcaption> 定義圖片區塊<figure>的標題
<figure> 完整內容的圖片區塊,包含照片標題及說明
<aside> 放與內文無直接關聯的側邊欄。如:側邊選單、廣告、推薦文章
<time> 時間日期
<footer> 結尾、作者版權資訊


關於CSS

接下來要準備進入CSS樣式表的階段了。
CSS(Cascading Style Sheets)中文為階層式樣式表

樣式表 顧名思義描述了元素長的樣子、元素的風格(Style)。
階層式 或者叫做級聯,是層層階階的關係,表示元素會受上一代、上上一代、表現出來的特性會受到世世代代的影響;當同時有多個樣式生效時,元素會按照級別順序套用各自對應的樣式。也許看到這張圖較能理解階層的意思(類似於族譜、基因遺傳圖)。

級聯

CSS一定要搭配HTML、沒辦法單獨使用,
就如同一個人要有骨架,骨架長起來 (股價漲起來?) 皮膚才有地方可以長。


Style引入方式

樣式(Style)有4種引入方式,來讓HTML能套用到對應樣式,
分這麼多種,第一次接觸時完完全全搞混了。

但其實嚴格來說,引入方式只分成前三種。

1. 行內、內聯 inline

將樣式style="..."屬性寫於HTML檔案,
寫在<tag>內作為該標籤的屬性之一,與標籤同一行,所以叫做行內
是行內,不是內行。 行內不一定內行

...
<p style="color:blue; background-color:yellow;">段落文字</p>
...

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<p style="color:blue; background-color:yellow;">段落文字</p>

</body>
</html>

優點:針對標籤各別作指定,淺顯易懂、一目瞭然,不容易指定錯誤
缺點:如果同時多處地方要改,不方便吶

2. 內部 internal

將樣式與對應元素用<style>包起來,
通常會將style標籤寫於HTML檔案的<head>之中。

...
<style>
    p{
        color:blue;
        background-color:yellow;
    }
</style>
...

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        p{
            color:blue;
            background-color:yellow;
        }
    </style>

</head>
<body>

<p>段落文字</p>

</body>
</html>

優點:把樣式從Body拉出來到上方,方便統一管理
缺點:拉的不夠徹底,因為下面有更徹底的方式

3. 外部連結 external - link

將樣式與對應元素寫於CSS檔案,
在從HTML內部透過link連結到CSS檔案。

這次不用包<style>標籤、也不用寫style="..."屬性,
但引入時要加上<link>標籤,這一行通常會放在<head>裡面。

...
<link rel="stylesheet" href="style.css">
...

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="index.css">
</head>
<body>

<p>段落文字</p>

</body>
</html>

index.css

p{
    color:blue;
    background-color:yellow;
}

優點:全部都拉出來了(?這句話怪怪的) 樣式全拉到外部成為一個.css檔案。
缺點:嗯... 我暫時想不到。

4. 外部導入 import

樣式寫法與 3. 一樣,
但這裡將樣式寫於另一個CSS檔案內,再由別的CSS檔案import他,然後才被HTML套用。

@import "style1.css";
@import url("style2.css");
...

@import寫法可加上url、也可不加。

@import必須寫於CSS檔案中的最前面。
(也合理,不然如果放最後面才import,原本寫好的CSS 被import進來的CSS蓋掉怎麼辦)

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="a.css">
</head>
<body>

<p>段落文字</p>

</body>
</html>

a.css

@import "index.css";

index.css

p{
    color:blue;
    background-color:yellow;
}

上一篇
【後轉前要多久】# Day04 HTML - 元素屬性、以及Emmet語法
下一篇
【後轉前要多久】# Day06 CSS - Selectors 選取器
系列文
後轉前要多久30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言