一个有趣的css选择器小游戏: http://flukeout.github.io/
Adjacent Sibling Selector(兄弟选择器)
Select an element that directly follows another element
A + B
This selects all B elements that directly follow A. Elements that follow one another are called siblings. They’re on the same level, or depth.
In the HTML markup for this level, elements that have the same indentation are siblings.
Examples
p + .intro selects every element with class=”intro” that directly follows a p
div + a selects every a element that directly follows a div
General Sibling Selector(可以选择多个兄弟)
Select elements that follows another element
A ~ B
You can select all siblings of an element that follow it. This is like the Adjacent Selector (A + B) except it gets all of the following elements instead of one.
Examples
A ~ B selects all B that follow a A
Child Selector(直系孩子)
Select direct children of an element
A > B
You can select elements that are direct children of other elements. A child element is any element that is nested directly in another element.
Elements that are nested deeper than that are called descendant elements.
Examples
A > B selects all B that are a direct children A
First Child Pseudo-selector(第一个儿子)
Select a first child element inside of another element
:first-child
You can select the first child element. A child element is any element that is directly nested in another element. You can combine this pseudo-selector with other selectors.
Examples
:first-child selects all first child elements.
p:first-child selects all first child pelements.
div p:first-child selects all first child pelements that are in a div.
Only Child Pseudo-selector(只有一个儿子的)
Select an element that are the only element inside of another one.
:only-child
You can select any element that is the only element inside of another one.
Examples
span:only-child selects the span elements that are the only child of some other element.
ul li:only-child selects the only li element that are in a ul.
Last Child Pseudo-selector
Select the last element inside of another element
:last-child
You can use this selector to select an element that is the last child element inside of another element.
Pro Tip → In cases where there is only one element, that element counts as the first-child, only-child and last-child!
Examples
:last-child selects all last-child elements.
span:last-child selects all last-child spanelements.
ul li:last-child selects the last lielements inside of any ul.
Nth Child Pseudo-selector
Select an element by its order in another element
#+# :nth-child(A)
Selects the nth (Ex: 1st, 3rd, 12th etc.) child element in another element.
Examples
:nth-child(8) selects every element that is the 8th child of another element.
div p:nth-child(2) selects the second p in every div
Nth Last Child Selector
Select an element by its order in another element, counting from the back
:nth-last-child(A)
Selects the children from the bottom of the parent. This is like nth-child, but counting from the back!
Examples
:nth-last-child(2) selects all second-to-last child elements.
First of Type Selector
Select the first element of a specific type
#+# :first-of-type
Selects the first element of that type within another element.
Examples
span:first-of-type selects the first span in any element.
Nth of Type Selector
#+# :nth-of-type(A)
Selects a specific element based on its type and order in another element - or even or odd instances of that element.
Examples
div:nth-of-type(2) selects the second instance of a div.
.example:nth-of-type(odd) selects all odd instances of a the example class.
Nth-of-type Selector with Formula(带有方程的)
:nth-of-type(An+B)
The nth-of-type formula selects every nth element, starting the count at a specific instance of that element.
Examples
span:nth-of-type(6n+2) selects every 6th instance of a span, starting from (and including) the second instance.
Only of Type Selector
Select elements that are the only ones of their type within of their parent element
#+# :only-of-type
Selects the only element of its type within another element.
Examples
p span:only-of-type selects a span within any p if it is the only span in there.
Last of Type Selector
Select the last element of a specific type
:last-of-type
Selects each last element of that type within another element. Remember type refers the kind of tag, so p and span are different types.
I wonder if this is how the last dinosaur was selected before it went extinct.
Examples
div:last-of-type selects the last div in every element.
p span:last-of-type selects the last span in every p.
Empty Selector
Select elements that don’t have children
:empty
Selects elements that don’t have any other elements inside of them.
Examples
div:empty selects all empty div elements.
Negation Pseudo-class
Select all elements that don’t match the negation selector
:not(X)
You can use this to select all elements that do not match selector “X”.
Examples
:not(#fancy) selects all elements that do not have id=”fancy”.
div:not(:first-child) selects every div that is not a first child.
:not(.big, .medium) selects all elements that do not have class=”big” or class=”medium”.
Attribute Selector
Select all elements that have a specific attribute
[attribute]
Attributes appear inside the opening tag of an element, like this: span attribute=”value”. An attribute does not always have a value, it can be blank!
Examples
a[href] selects all a elements that have a href=”anything” attribute.
[type] selects all elements that have a type=”anything”. attribute
Attribute Value Selector
Select all elements that have a specific attribute value
[attribute=”value”]
Attribute selectors are case sensitive, each character must match exactly.
Examples
input[type=”checkbox”] selects all checkbox input elements.
Attribute Starts With Selector
Select all elements with an attribute value that starts with specific characters
[attribute^=”value”]
Examples
.toy[category^=”Swim”] selects elements with class toy and either category=”Swimwear or category=”Swimming”.
Attribute Ends With Selector
Select all elements with an attribute value that ends with specific characters
[attribute$=”value”]
Examples
img[src$=”.jpg”] selects all images display a .jpg image.
Attribute Wildcard Selector
Select all elements with an attribute value that contains specific characters anywhere
[attribute*=”value”]
A useful selector if you can identify a common pattern in things like class, href or srcattributes.
Examples
img[src*=”/thumbnails/“] selects all image elements that show images from the “thumbnails” folder.
[class*=”heading”] selects all elements with “heading” in their class, like class=”main-heading”and class=”sub-heading”