# CSS - Selector ###### tags: `HTML-CSS` ## 一 . 選取器的基本概念 ### (一) . 選取器 1. css宣告 : 常見的css宣告下,其實可以用另外一種方式理解。 ```css= .class-name{ color:red; background-color : black; } ``` 2. 選取器 : css的宣告其實都滿足下面的特色。 - 選取器 : css的class、id、tag等等。 - 屬性 : css的properity。 - 值 : css的properity的值。 ```css= 選取器{ 屬性 : 值 ; 屬性 : 值 ; } ``` ### (二) . 選取器的分類 1. class : 類別選取器。 2. id : id選取器。 3. tag : html原生tag。 4. 僞元素(虛擬元素)。 5. 僞類別(虛擬類別)。 - Combinators : 可以指定某些元素後面的元素。 ## 二 . CSS的class、id、tag ## 三 . CSS的Combinators ### (一) . Adjacent sibling selector 1. 功用 : 選取同層下A元素後面緊接的B元素。 - 注意結構 : 是同層喔。 - A元素後面必須是B元素,選取器才會有用。 2. 語法 : ```A + B```。 - 例 : 可以使的標題後面的第一段文字變的顯目。 - A、B可以是任何class或id。 ```css= h1+p{ color :red; } ``` 3. 應用例一 : 多排共同元素下排除第一個。 - 如應用在表單中,可以使第一個```<li>```元素不被選取。 - 因為第一個元素必不會被同樣元素接著。 ```css= li+li{ border-top: 1px solid red; } ``` ### (二) . General sibling selector 1. 功用 : 選取同層下A元素後面所有的B元素。 - 注意結構 : 是同層喔。 - A元素後面所有的B元素都會被選取到。 2. 語法 : ```A ~ B```。 - A、B可以是任何class或id。 ```css= h1 ~ p{ color:red; } ``` ### (三) . Child selector 1. 功用 : 選取A元素為父元素下的子元素B。 - 注意結構 : 是異層喔。 - A元素下一代後的B元素會被選到,只在子代,子代後面的不會。 2. 語法 : ```A > B```。 - 例 : div元素下的p元素。 - A、B可以是任何class或id。 ```css= div > p{ color:red; } ``` ### (四) . Descendant selector 1. 功用 : 選取A元素為父元素下的子元素B,且包含子代之下。 - 注意結構 : 是異層喔。 - A元素下一代後的B元素會被選到,所有後代的所有B元素都會被選到。 2. 語法 : ```A B```(空格隔開)。 - 例 : div元素下所有代的p元素。 - A、B可以是任何class或id。 ```css= div p{ color:red; } ``` ## 四 . Pseudo-class ### (一) . 定義 1. 定義 : 『偽類別』,也是類別的一種,用來表是特定特別得某種『狀態』。 2. 語法 : 多在其他class、id、tag後面加入『:』。 ```css= div:hover{ color:red; } ``` ### (二) . 動態偽類 1. **『:link』** : 尚未點擊的狀態。 2. **『:hover』**: 滑鼠移動到的狀態。 - 常用,每個元素都會支援。 3. **『:active』**: 點擊當下的狀態。 - 常用,每個元素都會支援。 4. **『:foucs』**: 取得焦點的狀態。 - 並不是每一個元素都有支援。 - 表單、超連結tag有支援。(常用於input element) 5. **『:visited』** : 點擊過後的狀態。 ### (三) . Child偽類 #### 1. :first-child & :last-child 選取器 - 功用 : ```A:first-child```為A元素為父元素的第一個元素下,```A:last-child```反之。 - 不是選取『A元素下的第一個元素』。 - 是『當A元素是其父元素的第一個元素』。 - 注意 : 前面的為限制條件,如下例。 - 他的意思是 : 在div的子元素中,若.block是他的第一個子元素。 - 這種用法很依賴html的架構。 ```htmlmixed= <style> div .block:first-child{ background-color:red; } .block{ background-color:gray; } </style> ``` #### 2. :nth-child() & :nth-last-child 選取器 - 功用 : ```A:nth-child()```為A元素下的第n個元素,```A:nth-last-child```反之。 - 又跟:first-child相反,不是指『當A元素是其父元素的第n個元素』。 - 是『A元素下的第n個元素』。 - 數學式表達法 : 這個選取器的優點就是他可以
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.