1) CSS is for doing simple things, combined with power of XSL for doing complex things.
2) CSS is mainly used for rendering HTML, but it can also used for rendering XML directly, by defining the display characteristics of each XML element.
3) CSS has serious limitations, it can not reorder the elements in source document, can not add text or images,
can not decide which elements should be displayed and which omitted, neither can it calculates or averages or sequences numbers.
4) CSS can only be used when the structure of the source document is already very close to the final display form.
5) CSS to add the finishing touches, by selecting font sizes, colors, and so on. Typically, you would do the XSLT processing on the server and the CSS processing on the client (in the browser).
6) Another advantage of this approach is that you reduce the amount of data sent down the line, which should improve response time for your users and postpone the next expensive bandwidth increase.