CSS Syntax

CSS Syntax

The CSS syntax defines how CSS rules are written so that browsers can interpret and apply them to HTML elements.

Learn more about targeting elements with CSS Selectors.

CSS Syntax Example:

<style>
    /* CSS Rule */
    h1 {
        color: blue;
        /* Property: value */
        font-size: 24px;
    }
    p {
        color: navy;
        font-size: 16px;
    }
</style>

<h1>Hello, World!</h1> <p>This is a simple paragraph.</p>

In the above Example:


Selectors in CSS

Selectors define which HTML elements are styled. CSS offers several types of selectors.

1. Universal Selector

Applies styles to all elements on the page.

* {
    margin: 0;
    padding: 0;
}

2. Type Selector

Targets specific HTML elements by their tag name.

h1 {
    font-family: Arial, sans-serif;
}

3. Class Selector

Styles elements with a specific class attribute. (Starts with a dot .)

.box {
    border: 1px solid black;
    padding: 10px;
}

4. ID Selector

Targets a single element with a specific ID. (Starts with a hash #)

#header {
    background-color: lightgray;
}

Declaration Block in CSS Syntax

Each declaration consists of a property and a value, separated by a colon (:), and each declaration is followed by a semicolon (;):

1. Properties

Properties are the aspects of the selected elements you want to style.

2. Values

Values define the specifics of the property you want to apply, such as a color name (red), a number with units (16px), or percentages (50%).


Grouping and Nesting of CSS Selectors

You can group selectors to apply the same styles, or nest them for hierarchical targeting.

1. Grouping

Separate multiple selectors with a comma.

h1, h2, h3 {
    color: darkblue;
}

2. Nesting (Descendant Selectors)

Separate selectors with a space to target elements inside other elements.

ul li {
    list-style-type: square;
}

Pseudo-classes and Pseudo-elements

Pseudo-classes and pseudo-elements are used for styling specific states or parts of elements. Pseudo-classes target elements based on a particular state (like when a user hovers over it), and pseudo-elements target a specific part of an element (like the first line of text).

/* pseudo-class selector */
a:hover {
    color: navy;
}

/* pseudo-element selector */
p::first-line {
    font-weight: bold;
}

Exercise

?

What are the three core components of a basic CSS rule?