Content
Selectors
The selectors are used to identify the elements to which it will apply the format defined in the list of statements
There are different types of selectors that can be used to define CSS rules
Let's describe them from the most general to the most specific (from the point of view from lowest to highest priority)
Universal Selector
It is set to * and applies to all elements of the page:
The example has configured the margins and font of the text, which are usually some of the most commonly used rules
Tag Selector HTML
Indicates the style to be applied to an element or a specified tag
Its there's more than one, they'll be separated by commas
In the example, labels 1 to 5 of the title have been set, applying the font of the large text
As can be seen, we can do without < and > the label
Class Selector
Some HTML elements have the attribute class that indicates the classes to which the element belongs
This attribute allows us to treat that element "class" in a specific way, both in css style application and in its behavior programmatically with JavaScript
To apply the class selector, we'll use tag.class
In the example, we have configured the text in blue color for all the elements of the header class, because if we do not specify a label, the universal selector *
In the example you have set the text alignment centered only for the elements of the class header, which belong to the title tag <h1>
We must take special care not to leave spaces between the label, the point and the name of the class, since that space is significant, as we will see later
Selector id
Some HTML elements have the id attribute that indicates that this unique identifier it belongs to that particular element
To apply the identifier selector, we'll use tag#id
As with classes, it is very important to use the spaces
The example has set the background color of the text to yellow, in that paragraph that has the featured identifier
Selectors, descendant, and adjacent
These selectors allow you to select elements that are contained within other according to the structure of the DOM tree
This is where spaces take importance, because if we separate two selectors with a space, then we will be applying the rule to all descendants of the first selector
In the example you have set the text font as Verdana for all the elements <p> that they are descendants of the element <section> (remember that they can be descendants of any level, since that rule will be inherited)
Can be mixed interchangeably selectors descendants of a class or id
In the example, we have configured the text color as red for any element of the class error that is a descendant of the element
If instead of applying it to all descendants we want it to only apply to direct descendants (children), then we will use the >
In the example, we have configured the font of the text as Verdana only for the items <p> that are children of the element <section>
We can also select the sibling elements, that is, those that appear right after other elements, then we will use the symbol +
In the example, we have configured the indentation of the first paragraph that appears just after the title tag <h1>
Selectors of attributes
These selectors are used to select elements based on their attributes
There are four types:
- [attribute]: elements that have an attribute named attribute, regardless of its value
- [attribute=value]: elements that have an attribute named attribute with the specified value
- [attribute^=value]: elements that have an attribute named attribute and whose value starts with the specified value
- [attribute$=value]: elements that have an attribute named attribute and whose value ends with the specified value
In the example, we have set up a link that we want in a different color if it leads to a url with secure HTTP
Pseudo-classes
There are selectors special to specify elements that have certain properties
They are classes virtual, because they are not specified in HTML, but represent the positions or states in which an item can be found while viewing in the browser
The example has been configured to apply only if an item is the first child of its parent, for this we have used the first-child pseudoclass, only the first element <li> from a bullet list (<ul>) will appear in green
There are other pseudoclasses that will help us select a specific brother from among the children of an element:
- :nth-child(n) : represents the n-th brother
It allows you to include a more complex form such as:
- :nth-child(even) : that represents the children who occupy positions pairs
- :nth-child(odd) : that represents the children that occupy odd positions
(for example to make odd rows in a table have different background color and have a hebrew effect on a table)
- :nth-last-child(n) : similar to the previous one, but starting to count from the end
There are also dynamic pseudoclasses, which indicate the status of items when the user interacts with them:
- :hover : is used to set the style when the user mouses over the element
- :active : is used to set the style when the user click on the item or keep the mouse button pressed over it
- :focus : is used to set the style when the element has focus
Pseudoclasses related to links are also very typical:
- a:link : sets the style of the link when it has not yet visited or when the user has not already pressed
- a:hover : set the style when the user places the mouse over the link element
- a:active : set the style when the user clicks the link
- a:visited : set the style when the user has already visited
The example has set the status of unvisited, visited or mouse-based links
When using this CSS, the links in the document will appear un underlined and green
By placing the mouse over them they will stop at blue and, once visited, they will turn red
Example of Selectors in action
In the following example has included an HTML page and several of the selectors explained above
You can check the result by viewing it yourself in your browser and if you don't use a CSS reset, you might have different results in other browsers
Now we show the contents of the exampleSelectors.css file