iT邦幫忙

2022 iThome 鐵人賽

DAY 5
0
Modern Web

小白大戰基礎網頁開發系列 第 5

D05 - 來學 CSS 選擇器 (CSS Selectors)

  • 分享至 

  • xImage
  •  

選擇器把 HTML 和 CSS 結合在同一頻率上, 可互相溝通。HTML 的 tag 知道要從 CSS 哪邊套取樣式, 而 CSS 可以和 HTML 溝通要去哪邊的 tag 套取樣式。

Basic Selectors:

  • id selector(id選擇器): #id 選擇符合 id 屬性的元素來命名此選擇器

    id 只有一個, 在一個HTML 檔中是獨一無二的, 不可同時出現多個相同的 id

    #id {
    css declarations;
    }

example:

#design {
  opacity: .75;
  transition: opacity .5s ease-in-out; 
}
  • class selector(class選擇器): .class 選擇符合 class 屬性的元素來命名此選擇器

    .class {
    css declarations;
    }

example:

.dark-theme {
  background-color: #2c2c2c;  
  color: #e0e0e0;
}
  • element selector(元素選擇器): 選擇符合的元素標籤來命名此選擇器

example:

h1 {
  background-color: #2c2c2c;
}

以上介紹的三項選擇器是 簡易選擇器 (Basic Selectors) : id, class, element 都是選擇單一的 id, 單一的 class, 單一的元素標籤

Other Selectors:

  • multiple selectors(複合選擇器): 將多個選擇器結合

    多個選擇器之間不得有空格

    .class1.class2 {
    css declarations;
    }

  • grouping selectors(群組選擇器): 將多個選擇器用 逗號 結合起來, 將多處需套用相同樣式處集中管理

    element1, element2 {
    css declarations;
    }

example:

<!DOCTYPE html>
<html>
<head>
<style>
article, p, img {
   display: block;
   margin: auto;
   text-align: center;
   border-bottom: double blue;
}
</style>
</head>
<body>
<article>Demo Text</article>
<p>This is demo text.</p>
<br/>
<img src="C:\Users\User\Pictures\cute-pig-cartoon.jpg">
</body>
</html>


p, .pink, #pig {
  color:#FF69B4;
}

CSS 樣式規則在此將套用於:

  1. 所有 paragraph 元素
  2. 所有符合 class 是 pink 的元素
  3. 所有符合 id 是 pig 的元素

Why Group Selectors?

將 CSS 選擇器分組有助於最小化樣式表的大小,從而加快加載速度。
儘管 CSS 文件空間很小, 但能盡量減少 CSS 大小就可以更快加載出頁面對大家都是好事。
對網頁維護也有好處, 當需要修改某個樣式時, 編輯單一個 CSS 樣式規則即可, 而不是這邊修改完又想到還有別的地方沒有更改到相同的規則, 聰明的適當的使用群組選擇器可節省大家的時間和減少不必要的麻煩。

  1. 提高維護效率
  2. 提高生產力, 組織性
  3. 提高網頁渲染速度

如何調整 CSS 文件大小:

  1. 使用 Dean Edward's Javascript Packer

    http://dean.edwards.name/packer/

  2. 學會 CSS 簡寫 (CSS Shorthand)

Example:

Without shorthand:

background-color: #2c2c2c;
background-image: url(../media/examples/image.gif);
background-repeat: no-repeat;
background-position: top left;

With shorthand:

background: #2c2c2c url(../media/examples/image.gif) no-repeat top left;
  1. 將 CSS 和 JavaScript 作為獨立文件而不是使用內聯樣式或放在每個頁面的開頭。因為把 CSS 和 JavaScript 寫成獨立文件再把它們引入頁面的話, 服務器只需將它們提供給瀏覽器一次, 然後瀏覽器就會從緩存中移出了。

CSS 引入:

<link href="/css/darkTheme.css" rel="stylesheet">

JavaScript 引入:

<script th:src="@{/js/darkTheme/dark.js}"><script>

上一篇
D04 - 暗黑模式網頁 UI 設計
下一篇
D06 - 來聊聊 CSS 權重 (CSS Specificity)
系列文
小白大戰基礎網頁開發30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言