Introduction

Cascading Style Sheets (CSS) is a stylesheet language used to describe the presentation of a document written in HTML or XML (including XML dialects such as SVG, MathML or XHTML). CSS describes how elements should be rendered on screen, on paper, in speech, or on other media.

CSS is among the core languages of the open web and is standardized across Web browsers according to W3C specifications. Previously, development of various parts of CSS specification was done synchronously, which allowed versioning of the latest recommendations. You might have heard about CSS1, CSS2.1, CSS3. However, CSS4 has never become an official version.

From CSS3, the scope of the specification increased significantly and the progress on different CSS modules started to differ so much, that it became more effective to develop and release recommendations separately per module. Instead of versioning the CSS specification, W3C now periodically takes a snapshot of the latest stable state of the CSS specification.

Key Resources

  • CSS Introduction

    If you're new to web development, be sure to read our CSS basics article to learn what CSS is and how to use it.

  • CSS Tutorials

    Our CSS learning area contains a wealth of tutorials to take you from beginner level to proficiency, covering all the fundamentals.

  • CSS Reference

    Our exhaustive CSS reference for seasoned Web developers describes every property and concept of CSS.

Tutorials

Our CSS Learning Area features multiple modules that teach CSS from the ground up — no previous knowledge required.

  • CSS first steps

    CSS (Cascading Style Sheets) is used to style and layout web pages — for example, to alter the font, color, size, and spacing of your content, split it into multiple columns, or add animations and other decorative features. This module provides a gentle beginning to your path towards CSS mastery with the basics of how it works, what the syntax looks like, and how you can start using it to add styling to HTML.

  • CSS building blocks

    This module carries on where CSS first steps left off — now you've gained familiarity with the language and its syntax, and got some basic experience with using it, it's time to dive a bit deeper. This module looks at the cascade and inheritance, all the selector types we have available, units, sizing, styling backgrounds and borders, debugging, and lots more.

    The aim here is to provide you with a toolkit for writing competent CSS and help you understand all the essential theory, before moving on to more specific disciplines like text styling and CSS layout.

  • CSS styling text

    With the basics of the CSS language covered, the next CSS topic for you to concentrate on is styling text — one of the most common things you'll do with CSS. Here we look at text styling fundamentals, including setting font, boldness, italics, line and letter spacing, drop shadows, and other text features. We round off the module by looking at applying custom fonts to your page, and styling lists and links.

  • CSS layout

    At this point we've already looked at CSS fundamentals, how to style text, and how to style and manipulate the boxes that your content sits inside. Now it's time to look at how to place your boxes in the right place in relation to the viewport, and to each other. We have covered the necessary prerequisites so we can now dive deep into CSS layout, looking at different display settings, modern layout tools like flexbox, CSS grid, and positioning, and some of the legacy techniques you might still want to know about.

  • Use CSS to solve common problems

    This module provides links to sections of content explaining how to use CSS to solve common problems when creating a web page.

Reference

CSS reference: This exhaustive reference for seasoned Web developers describes every property and concept of CSS.

Style rule syntax

selectors-list ::=  selectors-list {   properties-list  }

... where :

selectors-list ::=  selector[:pseudo-class] [::pseudo-element]  [, selectors-list] properties-list ::=  [property : value] [; properties-list]

See the index of selectors, pseudo-classes, and pseudo-elements below. The syntax for each specified value depends on the data type defined for each specified property.

Style rule examples

strong {  color: red; } div.menu-bar li:hover > ul {  display: block; }

Source

The content of this page is taken from MDN.