[TOC]
>[info]當我們定義一條樣式規則時候,這條樣式規則會作用于網頁當中的某 些元素,選擇器是一種模式,用于選擇需要添加樣式的元素。下面列表常用的選擇器。
## id選擇器
>[danger]唯一的,一個頁面只出現一次,一般用于JS的獲取元素,以 "#" 來定義
下面的兩個 id 選擇器,第一個可以定義元素的顏色為紅色,第二個定義元素的顏色為綠色:
~~~
<style type="text/css">
#red {color:red;}
#green {color:green;}
p#red{
color:blue;
}
</style>
~~~
下面的 HTML 代碼中,id 屬性為 red 的 p 元素顯示為紅色,而 id 屬性為 green 的 p 元素顯示為綠色。
~~~
<p id="red">這個段落是紅色。</p>
<p id="green">這個段落是綠色。</p>
~~~
## 類選擇器
>[danger]作用于一類標簽的,需要的加上這個類名就可以,類選擇器以一個點號顯示:
~~~
<style type="text/css">
.center {text-align: center}
h1.center{font-size:14px;}
</style>
~~~
在上面的例子中,所有擁有 center 類的 HTML 元素均為居中。
在下面的 HTML 代碼中,h1 和 p 元素都有 center 類。這意味著兩者都將遵守 ".center" 選擇器中的規則。
~~~
<h1 class="center">
This heading will be center-aligned
</h1>
<p class="center">
This paragraph will also be center-aligned.
</p>
~~~
## 標簽選擇器
>[danger]作用于同一個標簽,以標簽名為選擇器:
~~~
<style type="text/css">
p {text-align: center}
</style>
~~~
下面的 HTML 代碼中,標簽為p都會被作用到
~~~
<p>我是P標簽包含的</p>
<h1>我是H1標簽包含的</h1>
<p>我是P標簽包含的</p>
~~~
## 群組選擇器
>[danger]同時匹配所有p元素或td元素,li元素,之間用逗號分隔
~~~
<style type="text/css">
p, td, li {
line-height:20px;
color:#c00;
}
</style>
~~~
## 后代選擇器
>[danger]后代元素選擇器,匹配所有屬于#nav元素后代的li元素
~~~
<style type="text/css">
#nav li {
display:inline;
}
</style>
~~~
## 通用選擇器
>[danger]通用選擇器用*來表示,作用于所有元素,一般在項目初始化時使用
~~~
<style type="text/css">
* {
font-family: "微軟雅黑";
}
</style>
~~~
## 偽類選擇器
>[danger]同一個元素在不同狀態下的不同樣式
下面例子:選擇鼠標指針浮動在其上的元素,并設置其樣式:
~~~
<style type="text/css">
a:hover{
background-color:yellow;
}
</style>
~~~
[更多偽類選擇器](http://www.w3school.com.cn/cssref/css_selectors.asp)
## CSS命名規范
* 對于頁面中具有唯一性、結構性的模塊,使用id選擇器,其他 一般采用class選擇器
* 選擇器命名一律使用小寫字母
* 要有合理的注釋
* 結構上有父子包含關系的樣式,應通過命名體現。
* 命名使用駝峰結構+橫線,即同一對象的命名如果需要多個單 詞,使用駝峰命名法則,如:boxMusic
* 名字不能以數字開頭
* 命名的時候一定要有意義
>[danger]**作業:**把所有常用的選擇器都練習下。
- 序言
- 第一章:準備工作
- 寫在學習之前的話
- web應用開發結構
- 開發工具/環境
- 第二章:展現層面(HTML/CSS)
- HTML簡介
- HTML基礎
- HTML編碼
- HTML鏈接
- HTML圖像
- HTML列表
- HTML表單
- HTML表格(分水嶺)
- HTML 實體
- HTML框架
- CSS層疊樣式表
- CSS選擇器
- CSS文本/字體
- CSS繼承和疊加
- CSS框模型
- CSS浮動(分水嶺)
- CSS定位
- CSS背景
- CSS圖標字體
- CSS補充
- 開發技巧
- 第三章:展現層面(Javascript)
- JS簡介
- JS實現
- JS輸出交互
- JS變量
- JS數據類型
- JS運算符
- JS流程控制(分水嶺)
- JS函數
- JS數組
- JS對象(分水嶺)
- JS數組對象
- JS字符串對象
- JS數學對象
- JS日期對象
- JS BOM對象(分水嶺)
- JS DOM對象
- JS事件對象
- JS元素對象
- JS DOM節點
- 第四章:展現層面(Jquery)
- JQ簡介
- JQ使用
- JQ選擇器
- JQ篩選
- JQ屬性
- JQ-CSS
- JQ事件
- JQ文檔處理
- JQ效果
- JQ-ajax
- 第五章:邏輯/業務層面(PHP)
- PHP簡介
- PHP變量
- PHP數據類型
- PHP常量
- PHP運算符
- PHP流程控制
- PHP函數(分水嶺)
- PHP日期
- PHP數學
- PHP數組
- PHP字符串
- PHP正則表達式(分水嶺)
- PHP目錄操作
- PHP文件
- PHP上傳/下載
- PHP面向對象(分水嶺)
- PHP圖像處理
- PHP會話控制
- Ajax異步處理
- PHPMysql擴展
- PHPMysqli擴展
- PHPPdo擴展
- PHP接口
- PHP命名空間
- 第六章:邏輯/業務層面(框架設計)
- 第七章:存儲層面(mysql)
- Mysql基礎
- Mysql Sql簡介
- Mysql數據庫
- Mysql數據類型
- Mysql數據表
- Mysql操作記錄
- Mysql查詢
- Mysql修改表結構
- Mysql日期與時間
- Mysql分組統計
- Mysql多表查詢
- Mysql安全
- Mysql存儲引擎
- Mysql事務
- Mysql視圖
- Mysql觸發器
- Mysql存儲過程
- Mysql存儲函數
- Mysql優化
- 第八章:服務器(Linux)
- Linux介紹與安裝
- Shell
- 目錄與文件操作
- VIM編輯器使用
- 帳號管理
- SUDO
- 權限控制
- 壓縮與打包
- 軟件安裝
- 計劃任務
- 進程管理
- 寶塔Linux面板