All HTML elements are selectors(所有的html元素都是html)
前面課程給<h1>,<p>,<span>,<a>等元素定義成了css的selector,事實上,任何的html元素都可以定義成selector,可以是<table>,<ul>,甚至是<body>
例如,下面給整個body設定背景色
body { background-color: #C6E2FF; }
Multiple Selectors(多個選取器)
可以把一個html元素嵌套在另一個裡面,例如,
<div> <div> <p>I like tacos!</p>
在這樣的情況,CSS怎樣給裡面那個裡面的<p>定義selector呢?
方法如下:
<span style="font-size:14px">div div p { /*CSS stuff!*/ }</span>
One selector to rule them all(全域選取器)
有一個非常特殊的selector,可以用來定義html所有的元素: * selector. 例如:
* { border: 2px solid black; }
將會給所有元素設定2像素的,實體的黑色邊界。
Branching(分支)
你可以把一個html檔案的元素看作是一顆樹(如上圖):元素從根節點<html></html>中分支出來,根節點的兩個兒子節點是<head>和<body>,然後從這兩個兒子節點中繼續分支下去。
Parents, children, and siblings(父親,兒子和兄弟)
如果把<html>標籤看作是樹的根節點,那麼head和body可以看作是它的兒子,而head和body是兄弟節點。就像家族的家譜一樣,元素節點有父親,兒子和兄弟,
上面的嵌套的selector就是按照這種樹形結構來設定的。
如果只想讓某個元素的兒子應用某種格式,而不想讓它兒子的兒子...也應用這種格式,那麼可以用 > 符號。
例如:
<div> <div> <p> </p> <div> <p> </div> </div> </div>
你只想讓第3行的<p>設定某種格式,那麼可以這樣:
div div > p { /* some css setting*/ }
那麼對更裡面的<p>將沒有效果