# 常用的 CSS 選擇器與屬性 ###### tags: `CSS` `前端` 快速連結: [文字相關](#文字相關)、[邊界](#邊界)、[水平置中](#水平置中)、[display呈現方式](#display呈現方式) ## 簡介 階層式樣式表(Cascading Style Sheets),簡稱 CSS。 用途是為 HTML 結構增添樣式,基本的結構如下 ```css=1 選擇器 { 屬性: 設定值; 屬性: 設定值; } ``` 如果要看英文文件的話: * 選擇器 = selector * 屬性 = attribute ## 種類 常見的 CSS 選擇器有三種分類: * 標籤選擇器 * 擬態選擇器 * 類別選擇器 ### 標籤選擇器 以 HTML 標籤為對象,一次更改所有標籤的樣式。 下面這個 css 就會將網頁中所有的 h2 變成棕色;將所有的 p 變成灰色 ```css=1 h1{ color: blue; } h2{ color: brown; } p{ color: gray } ``` ### 擬態選擇器 以「狀態」為對象更改樣式,最常使用的情境是在連結 **\<a>**,提高使用者體驗 ```css=1 a{ color: red; } a:hover { color: pink; } ``` 將滑鼠游標移動到連結上,連結就會變成粉紅色  (win10 截圖太智慧,會自動幫我移除游標..總之就是游標移動到連結上,連結會變色) ### 類別選擇器 以自行定義的「類別」為對象更改樣式,應該是最常使用的選擇器了。 假設我有這樣的 HTML,我想讓第一段 \<p> 改變顏色,但其他段落不改,因此我幫第一個段落加上類別,也就是 ==class="first"== ```htmlmixed=1 <!DOCTYPE html> <html lang="zh-TW"> <head> <title>我是網站標題</title> <link rel="stylesheet" href="style.css"> </head> <body> <h1>標題</h1> <p class="first"> Lorem ipsum dolor sit amet consectetur adipisicing elit. Quas ipsam ullam totam, praesentium est dicta incidunt asperiores veniam obcaecati eaque. </p> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Quas ipsam ullam totam, praesentium est dicta incidunt asperiores veniam obcaecati eaque. </p> </body> </html> ``` 接著在 css 加入類別選擇器(用符號 "." 加上類別名稱) ```css=1 .first { color: blue; } ``` 結果如下  ### 後代選擇器 這裡的「後代」指的是父類別、子類別當中的子類別,我可以用這種選擇器選取某個類別/元素底下的子元素。 基本語法是: ```css=1 父元素/類別 子元素/類別 { } ``` 下面舉個例子 ```htmlmixed=1 <div class="box"> <h1>標題</h1> <p class="first">段落</p> <p>段落</p> </div> ``` ```css=1 .box { color: blue; } ```  如果我只希望 h1 變顏色,我可以將 css 改成下面這樣 ```css=1 .box h1{ color: blue; } ```  在更進一步,我只希望第一個段落變色,可以這樣寫 ```css=1 .box .first{ color: blue; } ```  ## 常用的屬性 ### 文字相關 ### font-family 更改字體。常用的字體有 Verdana, Geneva, Tahoma, sans-serif;微軟正黑體 ### font-size 更改文字大小 ### font-weight 更改文字粗細。可用 ==bold== 加粗文字或是用數字 100-1000 設定粗細 ### line-height 更改行高。瀏覽器本身有預設值,以 Edge 來說是 1.25,常用的是 1.5。 數字的意思是「字體大小的 X 倍」。 也可以指定固定長度例如 27px 這樣。 ### text-align 文字對齊方向,預設是 left,可設定 right, center。 作用的對象是「子元素」,也就是包在自己裡面的 div, 文字, 圖片等等 [參考置中](#水平置中) ### text-indent 用來設定一個段落的第一行要有多少縮排,通常會設定兩個字的長度。 如果一個字是 16px,這個值就會設定為 32px ### text-decoration 底線: text-decoration: underline 畫線: text-decoration: line-through 備註: 可偷學新聞網站的 css 文字設定:字體、大小、行距 --- ### 邊界 ### border 為標籤周圍加上邊界,基本的寫法如下: ```css=1 h1{ border: 5px solid blue; /* 粗細 樣式 顏色*/ } ``` * 樣式通常只會用到 solid(實線),其他樣式還有 dashed(虛線)、dotted(點點) * 只有樣式是必填欄位。粗細不指定預設是 3px;顏色部分會套用選擇器的顏色 --- ### 水平置中 這裡講的是「元素」的水平置中,語法如下 ```css=1 .box { margin-left: auto; margin-right: auto; } ``` 效果是無論瀏覽器的寬度如何改變,元素都會在瀏覽器的正中間  如果要置中的是「文字」則是用 **text-align: center** 這個屬性,但要注意作用的範圍,下面舉例: ```htmlmixed= <div class="box"> <p>段落</p> </div> ``` ```css= .box { width: 200px; height: 200px; border: 10px solid; margin-left: auto; margin-right: auto; text-align: center; /*嘗試將段落置中*/ } ```  如果我將 text-align 加在 .box 當中是不會起作用的,必須加在真正持有文字的 p 才有作用。 --- ### display(呈現方式) 改變元素的呈現方式,常用的有 * display: inline 將元素轉為行內元素 * display: block 將元素轉為區塊元素 * display: none 將元素從畫面上移除 --- 想嘗試更多選擇器可到 w3cschool 的文件挖掘 [連結](https://www.w3schools.com/cssref/css_selectors.asp)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up