CSS Syntax

CSS Syntax

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

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?