選擇所有子元素
如果要選特定的所有元素,一般都是element > element,但如果是非特定的所有元素,也就是不管是什麼元素都算,可以簡單用element > *,或是element *。
用element > *,代表第一個階層,雖然實測有些CSS屬性還是可以影響所有階層,但不是全部,如果要影響所有階層建議直接用element *。
舉例來說,我本來想要設定某句子是黑色字體,但句子中某個單字是紅色,原本只需要寫.ClassNameA{color:black;} .ClassNameB {color:red},由於我希望只有在指定的句子中的某單字才要改紅色,因此第二個改為.ClassNameA .ClassNameB {color:red}。
一般情況這樣沒有問題,但當我需要為單字加上ruby時就失效了,請見下面範例:
See the Pen select all child elements1 CSS by kumo (@kumo-tw) on CodePen.
可以發現第一個句子是正常,第二個句子卻沒有改成紅色,這是因為.red中又有ruby(只要有元素都一樣),如果要讓他全部紅色,就要寫.red ruby, .red ruby rt,這樣不僅很長而且只有限定ruby,如果是span或div又要再另外寫,因此直接用*代表.red中不管又加上多少元素一律都改為紅色。
範例:
See the Pen Untitled by kumo (@kumo-tw) on CodePen.
這樣就成功變色了,以下提供一般版的範本,並提供背景色跟字體顏色的差異。
element > * 與 element * 的差別
以下是.boxA跟.boxB兩組的對照,第一組用element > *,第二組用element *。
See the Pen select all child elements3 CSS by kumo (@kumo-tw) on CodePen.
了解以上差異之後就可以知道自己要用哪一種了,希望對你有幫助:)