CSS-mode is easily installed, just insert this in your .emacs file:
(autoload 'css-mode "css-mode")
(setq auto-mode-alist
(cons '("\\.css\\'" . css-mode) auto-mode-alist))
The most important feature is probably the font-locking support, which works just like all other major modes with font-lock support.
css-mode has now been extended to support two indentation styles: old-style and c-style.
The default is old-style, but if you want c-style, put this in your .emacs:
(setq cssm-indent-function #'cssm-c-style-indenter)
The amount of indentation is controlled by the cssm-indent-level variable.
It is also possible to write your own indentation function, if you don't like the two I've provided. To do this, write a function that accepts three parameters:
The function must return the column number that the line is to be indented to. If anyone writes an indentation function I'd be glad to include it in future css-mode releases.
So far, there are three kinds of typing assistance: short-cuts, mirror mode and completion. Right now there are only two such short-cuts:
Mirror mode is a sort of minor mode (it hasn't been made a proper minor mode, but it is conceptually similar) that changes the way some keys work. If you type a {, the matching bracket is automatically inserted. Other keys that are mirrored are " and (.
If you don't like this mode there are three ways to turn it off:
Completion lets you use "M-TAB" to complete the CSS property you are currently typing in the normal manner of TAB completion.