We’re entering the deepest realms of CSS3 now — aspects that are often more specific than the CSS Intermediate Tutorial but, y’know, really biscuity cool. ~HTML Dog
CSS is the language for describing the presentation of Web pages, including colors, layout, and fonts. It allows one to adapt the presentation to different types of devices, such as large screens, small screens, or printers. CSS is independent of HTML and can be used with any XML-based markup language.
The separation of HTML from CSS makes it easier to maintain sites, share style sheets across pages, and tailor pages to different environments. This is referred to as the separation of structure (or: content) from presentation.
CSS Maker »
A CSS rule-set consists of a selector and a declaration block. The selector points to the HTML element you want to style.The declaration block contains one or more declarations separated by semicolons.
CSS can be added to HTML elements in 3 ways: Inline - by using the style attribute in HTML elements, Internal - by using a <style> element in the <head> section, External - by using an external CSS file
CSS allows animation of HTML elements without using JavaScript or Flash. Using keyframes, an animation lets an element gradually change from one style to another as many times as you want.
CSS is hard because its properties interact, often in unexpected ways. Because when you set one of them, you're never just setting that one thing. That one thing combines and bounces off of and contradicts with a dozen other things, including default things that you never actually set yourself.
One rule of thumb for mitigating this is, never be more explicit than you need to be. Web pages are responsive by default. Writing good CSS means leveraging that fact instead of overriding it. Think in terms of rules, in terms of what you really mean to say, instead of just adding properties until things look right. Try to get a feel for how the browser resolves layout and sizing, and make your changes and additions on top of that judiciously. Work with CSS, instead of against it.
CSS is weird. It's unlike any other code, and that makes a lot of programmers uncomfortable. But used wisely it can, in fact, be awesome.