W3C CSS logo Cascading Style Sheets FAQ

home CSS FAQ parent questions from implementers

8.1. Why can `@import' be at the top only?

A style sheet that is imported into another one has a lower ranking in the cascading order: the importing style sheet overrides the imported one. Programmers may recognize this as the same model as in Java, Modula, Object-Pascal, Oberon and other modular programming languages.

However, there is a competing model, well-known to C programmers, where the imported material is not lower in rank, but is expanded in-place and becomes an integral part of the importing document.

By allowing @import only at the top of the style sheet, people that think in terms of the second model (although in principle incorrect) will still get the expected results: as long as the @import is before any other overriding rules, the two models are equivalent.

Btw. In all the modular languages import statements are only allowed at the top. In C, the `#include' can be put elsewhere, but in practice everybody always puts it at the top. So there may not be that much need to allow @import elsewhere in the style sheet either.


W3C Bert Bos
Webmaster
Last updated 10 Jan 1997