In my previous article on CSS3 Selectors, I discussed the two Attribute Selector classifications; Attribute Presence and Value Selectors, and, Attribute Substring Matching Selectors.
In addition to the new Attribute Selectors, the CSS3 Selectors Module defines a new Combinator called the General sibling combinator, which is described below, succeeding a review of each CSS3 Combinator.
Combinators
Combinators provide a means for describing relationships between elements in order to “combine” them to form specific rules based on a simple syntax. There are four Combinators in CSS3, below is description and example of each:
- Descendant combinator
- The most familiar of all Combinators, the Descendant combinator allows for selecting any element f which is a descendant (child, grandchild, great-grandchild and so on) of an element e. The combinator syntax for a Descendant combinator is a single “white-space” character.123456789/*Matches all <h1> elements which are descendants ofan <article> element*/article h1{/* declarations */}
8.1. Descendant combinator - Child combinators
- Child combinators allow for selecting any element f which is a direct child of an element e. The combinator syntax for a Child combinator is a single “greater-than” (>) sign.123456789/*Matches each <section> element that is a childof an <article> element*/article > section {/* declarations */}
8.2. Child combinator - Adjacent sibling combinator
- The Adjacent sibling combinator is a Sibling combinator which allows for selecting an element f which is adjacent to an element e; that is, element f immediately follows element e in the document tree. The combinator syntax for an Adjacent sibling combinator is a single “plus” (+) sign.123456789/*Matches all <em> elements which are the next siblingof a <strong> element*/strong + em {/* declarations */}
8.3.1. Adjacent sibling combinator - General sibling combinator
- New in CSS3, the General sibling combinator is similar to the Adjacent sibling combinator in that it matches an element f which follows an element e in the document tree; however, whereas in the Adjacent sibling combinator element f must immediately follow element e, the General sibling combinator allows for selecting an element f which is preceded by an element e, but not necessarily immediately preceded by an element e. The combinator syntax for a General sibling combinator is a single “tilde” (~) sign.123456789/*Matches all <time> elements which are preceded bya <del> element*/del ~ time {/* declarations */}
8.3.2. General sibling combinator
The following demonstrates a very basic example of each of the above Combinators:
View Example