The way CSS works is by specifying rules with different specificity depending how important styles are. That allows for cascading and extending.
Element selectors e.g. html, body are the weakest and we use them when we need a tad stronger (more specific) selector. If we were to use class name it would be harder to overwrite.
Since some of the selectors cascade into different places it does happen that styles from one control would cascade to others. At times we use a tad stronger selectors, but if we need to overwrite those we need another tad stronger. Hence the html body in the beginning of the selectors.
Ideally, those will not be there, but it's a very very long process.
Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.