iT邦幫忙

2022 iThome 鐵人賽

DAY 8
0
自我挑戰組

掌握 Master CSS 優化開發體驗系列 第 8

Day 08 - 在元素上應用偽類

  • 分享至 

  • xImage
  •  

偽類

偽類是由一個冒號 : 作為前綴詞宣告,緊接著是偽類的名稱,例如 :hover:focus:first-child:disabled 等等。

而 Master CSS 能夠讓我們直接在元素上面應用 CSS 偽類,下面介紹幾種常用的偽類給大家。

:hover

:hover 語法表示元素 hover 時的狀態,bg:#f8f8fa:hover 代表元素在 hover 的時候套用 bg:#f8f8fa 屬性。

<button class="... bg:#f8f8fa:hover">
  Submit
</button>
.bg\:\#f8f8fa\:hover:hover {
  background-color: rgb(248, 248, 250);
}

:focus

:focus 語法表示元素 focus 時的狀態,b:#f8f8fa:focus 代表元素在 focus 的時候套用 b:#f8f8fa 屬性。

<input class="... b:#f8f8fa:focus" type="text" placeholder="Name" />
.b\:\#f8f8fa\:focus:focus {
  border-color: rgb(248, 248, 250);
}

:first

:first 語法表示第一個子物件,bg:#f8f8fa:first 代表第一個子物件套用 bg:#f8f8fa 屬性。

<ul>
  <li class="... bg:#f8f8fa:first">
    <h2>Dressing Table</h2>
  </li>
  <li class="... bg:#f8f8fa:first">
    <h2>Double Bed</h2>
  </li>
  <li class="... bg:#f8f8fa:first">
    <h2>Sofa</h2>
  </li>
  <li class="... bg:#f8f8fa:first">
    <h2>Cabinet</h2>
  </li>
  <li class="... bg:#f8f8fa:first">
    <h2>Desk</h2>
  </li>
  <li class="... bg:#f8f8fa:first">
    <h2>Mirror</h2>
  </li>
</ul>
.bg\:\#f8f8fa\:first:first-child {
  background-color: rgb(248, 248, 250);
}

https://ithelp.ithome.com.tw/upload/images/20220921/20103817Y8dyfYa5Og.jpg

:last

:last 語法表示最後一個子物件,bg:#f8f8fa:last 代表最後一個子物件套用 bg:#f8f8fa 屬性。

<ul>
  <li class="... bg:#f8f8fa:last">
    <h2>Dressing Table</h2>
  </li>
  <li class="... bg:#f8f8fa:last">
    <h2>Double Bed</h2>
  </li>
  <li class="... bg:#f8f8fa:last">
    <h2>Sofa</h2>
  </li>
  <li class="... bg:#f8f8fa:last">
    <h2>Cabinet</h2>
  </li>
  <li class="... bg:#f8f8fa:last">
    <h2>Desk</h2>
  </li>
  <li class="... bg:#f8f8fa:last">
    <h2>Mirror</h2>
  </li>
</ul>
.bg\:\#f8f8fa\:last:last-child {
  background-color: rgb(248, 248, 250);
}

https://ithelp.ithome.com.tw/upload/images/20220921/20103817vcUFfMDUwa.jpg

:odd

:odd 語法表示奇數個子物件(1、3、5 …),bg:#f8f8fa:odd 代表第奇數個子物件套用 bg:#f8f8fa 屬性。

<ul>
  <li class="... bg:#f8f8fa:odd">
    <h2>Dressing Table</h2>
  </li>
  <li class="... bg:#f8f8fa:odd">
    <h2>Double Bed</h2>
  </li>
  <li class="... bg:#f8f8fa:odd">
    <h2>Sofa</h2>
  </li>
  <li class="... bg:#f8f8fa:odd">
    <h2>Cabinet</h2>
  </li>
  <li class="... bg:#f8f8fa:odd">
    <h2>Desk</h2>
  </li>
  <li class="... bg:#f8f8fa:odd">
    <h2>Mirror</h2>
  </li>
</ul>
.bg\:\#f8f8fa\:odd:nth-child(2n+1) {
  background-color: rgb(248, 248, 250);
}

https://ithelp.ithome.com.tw/upload/images/20220921/20103817RHCX4oR62g.jpg

:even

:even 語法表示偶數個子物件(2、4、6 …),bg:#f8f8fa:even 代表第偶數個子物件套用 bg:#f8f8fa 屬性。

<ul>
  <li class="... bg:#f8f8fa:even">
    <h2>Dressing Table</h2>
  </li>
  <li class="... bg:#f8f8fa:even">
    <h2>Double Bed</h2>
  </li>
  <li class="... bg:#f8f8fa:even">
    <h2>Sofa</h2>
  </li>
  <li class="... bg:#f8f8fa:even">
    <h2>Cabinet</h2>
  </li>
  <li class="... bg:#f8f8fa:even">
    <h2>Desk</h2>
  </li>
  <li class="... bg:#f8f8fa:even">
    <h2>Mirror</h2>
  </li>
</ul>
.bg\:\#f8f8fa\:even:nth-child(2n) {
  background-color: rgb(248, 248, 250);
}

https://ithelp.ithome.com.tw/upload/images/20220921/20103817yd6E9fjcmB.jpg

:nth(N)

:nth(N) 語法表示第 N 個子物件,bg:#f8f8fa:nth(4) 代表第四個子物件套用 bg:#f8f8fa 屬性。

<ul>
  <li class="... bg:#f8f8fa:nth(4)">
    <h2>Dressing Table</h2>
  </li>
  <li class="... bg:#f8f8fa:nth(4)">
    <h2>Double Bed</h2>
  </li>
  <li class="... bg:#f8f8fa:nth(4)">
    <h2>Sofa</h2>
  </li>
  <li class="... bg:#f8f8fa:nth(4)">
    <h2>Cabinet</h2>
  </li>
  <li class="... bg:#f8f8fa:nth(4)">
    <h2>Desk</h2>
  </li>
  <li class="... bg:#f8f8fa:nth(4)">
    <h2>Mirror</h2>
  </li>
</ul>
.bg\:\#f8f8fa\:nth\(4\):nth-child(4) {
  background-color: rgb(248, 248, 250);
}

https://ithelp.ithome.com.tw/upload/images/20220921/20103817tf7Y0HWx3z.jpg

:disabled

:disabled 語法表示禁用時的樣式,opacity:.5:disabled 代表元素在禁用狀態時套用 opacity:.5 屬性。

<input class="... opacity:.5:disabled" type="text" placeholder="姓名" disabled>
.opacity\:\.5\:disabled:disabled {
  opacity: 0.5;
}

:invalid

:invalid 語法表示無效或格式錯誤時的樣式,b:red:invalid 代表元素在無效或格式錯誤時套用 b:red 屬性。

<input class="... b:red:invalid" type="email" placeholder="E-mail">
.b\:red\:invalid:invalid {
  border-color: rgb(209, 26, 30);
}

:required

:required 語法表示必填時的樣式,b:green:required 代表元素為必填時套用 b:green 屬性。

<input class="... b:green:required" type="email" placeholder="E-mail" required>
.b\:green\:required:required {
  border-color: rgb(6, 123, 52);
}

總結

本日 codepen 連結

Master CSS 提供了一系列的偽類語法,使開發者能夠在 HTML 元素上直接應用 :hover:focus 等常用偽類,並且語法與原生 CSS 十分類似,因此只要是熟悉 CSS 的開發者,就能快速地上手 Master CSS。

參考


上一篇
Day 07 - 常用單位轉換
下一篇
Day 09 - 在元素上應用偽元素
系列文
掌握 Master CSS 優化開發體驗30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言