# 🏅 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]() |