---
# System prepended metadata

title: "\U0001F3C5 Day 4 - 文字細節設定"
tags: [Sponya 體驗營 - 2024]

---

# 🏅 Day 4 - 文字細節設定
只要有運用到文字的部分，都需要依照設計稿來設定相關文字細節（像是：字型、字體大小、行高、字體粗細 等等）
在設計稿中，點選右側「`</>`」icon，會出現設計稿相關設定資訊
<img src="https://hackmd.io/_uploads/SyX0kCZ36.png" width="200">

此時點選文字，會呈現出該文字的設定，即可依照設計稿資訊來設定各文字樣式

![image](https://hackmd.io/_uploads/SkYDxA-2p.png)

## font-size
用於設定**字體大小**，對應設計稿資訊：
<img src="https://hackmd.io/_uploads/rkNvZAZna.png" width="200">

以此為例，需在 CSS 中設定：`font-size: 32px;`

## line-height
用於設定**文字行高**，對應設計稿資訊：
<img src="https://hackmd.io/_uploads/rJevXmRWha.png" width="200">
以此為例，需在 CSS 中設定：`line-height: 48px;`

行高也可以使用倍數方式設定，以此為例：
行高為字體的 1.5 倍（32px * 1.5 = 48px） -> `line-height: 1.5;`


## font-weight
用於設定**文字粗細**，對應設計稿資訊：
<img src="https://hackmd.io/_uploads/rkQEa0Z2p.png" width="200">

使用英文（normal、bold、bolder、lighter）或數字設定。
預設值為 **normal**，也就是 400。

設計稿若是呈現 **Bold**，可以直接設定 `font-weight: bold;` 或是 `font-weight: 700;`
若是 **Medium**，需設定為 `font-weight: 500;`（font-weight 沒有 medium 的值）

其餘常用說法對應的數字可以參考此[連結](https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight#common_weight_name_mapping)中對照表「Common weight name mapping」

## font-style
預設值為 normal，通常用於要將文字調整為斜體時使用，
對應設計稿資訊：
<img src="https://hackmd.io/_uploads/ryDRmJzha.png" width="200">


設定 `font-style: italic;` 即可將文字變為斜體


## font-family
用於設定文字字型，對應設計稿資訊：
<img src="https://hackmd.io/_uploads/SJXbQkGna.png" width="200">
語法：
`font-family: 想運用的字體;` 
> 通常撰寫的時候，會再將通用字體、系統預設字體（像是：sans-serif 無襯線字體、-apple-system）寫上，依序套用可以使用的字體，確保各個裝置都能正確瀏覽。
> ```css=
> body {  /* 通常會在 body 統一設定 */
>   font-family: -apple-system, BlinkMacSystemFont, /* 系統預設的字體 */
>   'Segoe UI', Roboto, Ubuntu, 'Droid Sans',       /* 系統 UI 字體 */
>   Arial, 'Helvetica Neue', sans-serif;            /* 通用字體 */
> }
> ```

注意：
建議不要使用中文設定（像是：`font-family: '微軟正黑體'`），
另外如果字型中間有空格的話要記得使用引號，像是：`font-family: 'Microsoft JhengHei'`

想載入外部字型（非系統預設字體）的話，可以嘗試使用 [Google Fonts](https://fonts.google.com/)。
> 若是 Google Fonts 沒有的字型可以看是否能下載到本地放入專案資料夾中使用
>[@font-face](https://developer.mozilla.org/zh-TW/docs/Web/CSS/@font-face) 載入，
> 或是和設計師討論使用 Google Fonts 雲端字型

### Google Fonts 載入
選擇想要載入的字型，以「切版任務作業」提供的設計稿為例，此設計稿的字體有「思源黑體（Noto Sans）、Roboto」

1. 進入 [Google Fonts](https://fonts.google.com/) 官網，搜尋並進入字體頁面
2. 點選右上角「Get Fonts」按鈕
![image](https://hackmd.io/_uploads/Bk2ESNN3p.png)
3. 進入已選擇的字型頁面，點選「Get embed code」
![image](https://hackmd.io/_uploads/H1K58N4np.png)
4. 左側區塊可以根據需求選擇需要的文字粗細與是否斜體
<img src="https://hackmd.io/_uploads/BkAwOVV3a.png" width="300">
（此設計稿沒有 Roboto Italic 的字體，可以將所有含 Italic 的選項移除）
6. 右側區塊會**提供兩種方式載入（擇一使用）**
![image](https://hackmd.io/_uploads/BkHrDN43p.png)

＊**使用 `<link>` 方式**：
將整段程式碼貼到 HTML `<head>` 內
範例：

```htmlembedded=
<head>
  <link rel="preconnect" href="https://fonts.googleapis.com">
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  <link href="https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@100..900&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap" rel="stylesheet">
  <link href="style.css"> <!-- 自定義的 CSS 檔 -->
</head>
```

若是使用 CodePen，則貼到 HTML 區塊中 `Stuff for <head>`（如下圖）

![](https://i.imgur.com/LjAbEGN.png)

＊**使用 `@import` 方式**：
則直接在 CSS 最上方加入即可

```css=
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@100..900&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')
```
載入後即可在 CSS 設定：
`font-family: Roboto, 'Noto Sans TC',...;`


題目
---
複製此[模板](https://codepen.io/hexschool/pen/MWxdoaG)，為所有文字調整相關細節
（只需調整 CSS 區塊內 `＊` 的地方，以及需自行載入外部字型）

文字相關樣式可以觀看「切版任務作業」設計稿中的下方圖片區塊

![image](https://hackmd.io/_uploads/H1nA9VVn6.png)




模板與解答皆有載入 CSS Reset 清除瀏覽器預設設定，
使用 Codepen 可直接在 `Settings > CSS > CSS Base > Reset` 設定

## 回報流程

將答案寫在 CodePen 並複製 CodePen 連結貼至底下回報就算完成了喔! 
解答位置請參考下圖（需打開程式碼的部分觀看）

![](https://i.imgur.com/vftL5i0.png)

<!-- 解答：  
https://codepen.io/hexschool/pen/jOJRrWx

-->




回報區
---
<!-- 
將答案貼至下方表格內，格式：
| Discord 暱稱 | [CodePen](連結) |
-->

|    Discord    |    CodePen／答案    |
|:----------:|:--------------------:|
| xxx | [CodePen]() |