昨天看到@import url(),不太常用,褒贬不一。一开始是由于一个兼容问题: @import url(/css/a.css) 很简单但出现了兼容问题,在ff下无法调用样式,大家都以为是@import搞的怪,但用link后问题依然出现。经过一番讨论原来是绝对路径在ff下是不认的。
对@import url()做一下总结:
1,@import url()机制是不同于link的,link是在加载页面前把css加载完毕,而@import url()则是读取完文件后在加载,所以会出现一开始没有css样式,闪烁一下出现样式后的页面(网速慢的情况下)。
2,@import 是css2里面的,所以古老的ie5不支持。
3,当使用javascript控制dom去改变样式的时候,只能使用link标签,因为@import不是dom可以控制的。4,link除了能加载css外还能定义RSS,定义rel连接属性,@import只能加载css
@import url(xxx.css); 有最大次数的限制,经测试IE6的最大次数是31次,第32个import及以后的都不能生效,如下:
@import url(1.css);
@import url(2.css);
@import url(3.css);
@import url(4.css);
@import url(5.css);
@import url(6.css);
@import url(7.css);
@import url(8.css);
@import url(9.css);
@import url(10.css);
@import url(11.css);
@import url(12.css);
@import url(13.css);
@import url(14.css);
@import url(15.css);
@import url(16.css);
@import url(17.css);
@import url(18.css);
@import url(19.css);
@import url(20.css);
@import url(21.css);
@import url(22.css);
@import url(23.css);
@import url(24.css);
@import url(25.css);
@import url(26.css);
@import url(27.css);
@import url(28.css);
@import url(29.css);
@import url(30.css);
@import url(31.css);
@import url(32.css);
◎import url(xx.css);
body{color:#333}
虽然最多只能import 31次,但不会影响css里面的其他规则,如body{}的定义还能正常显示。
Firefox 没有发现有import的最大值。
另外,既然横向import有最大次数限制,却可以通过垂直import来继续扩展。