November 7, 2007
写这个题目, 也只是脑子中一直想着这个事情, 想想博客就是让我把大脑中想的变成网络上的文字, 我就写下来了。 其实我不是给大家来上课, 而是来请教大家问题的。
说道这个CSS, 一直都让我很头疼, CSS这个东西除了自己标准有一套, IE也有自己的一套, Fx也不会跟IE互相兼容, opera我是彻底不知道了, 据说更加的困难(据说而已)。
今天我也说这个各个浏览器之间的CSS了, 我心中比较疑惑的是CSS中将外部CSS文件链入网页中的方法, 其中一个是link, 还有一个是import。 我以前也不知道有import这么个东西, 总以为想将外部CSS文件链接进来的方法就是link了, 可突然前几天发现竟然还有这么个东东, 这下可把我给搞糊涂了, 有人会说, 这有啥好糊涂的, 随便用呗。 这也对, 可我不是我有的目的吗?
我的目的是这样来的, 我以前写一个CSS, 然后倒入到WP的header中, 可奇怪的是发现这个CSS没有起作用, 那Firefox下的firebug一看, 好家伙, 一个个别的规则将我自己定义的规则给覆盖了, 原因就是我的CSS先于这个别的规则的CSS加载了, 根据CSS的规则就被自动覆盖掉了。 不得已, 我将这个CSS从外链改成了内联, 放在了我要用到地方的前面, 这下覆盖不了了, 成功解决。
可其实我一直不太喜欢用内联的CSS样式, 我也觉得网页需要精简成只有内容, 而样式应该是另外独立的, 将样式和内容写在一个文件中多别扭啊, 而且每次都要在服务器端和客户端之间传输, 消耗流量。
突然有一天, 被我看到了这个import的方法, 我想这个方法是不是可以提高CSS外链文件的优先级呢? 如果可以, 那我岂不是可以将我的CSS用import方法导入进来? 知之为知之, 不知为不知, 我学习先。 我找到了这点资料, 也不知道对不对, 反正是将我的希望给浇灭了(这里也说有优先级, 可最后的转载却没有提到)。
以下内容转载自这里:外部引用CSS中 link与@import的区别
看到淘宝网页中这样写使用的是import,而很多网站都是使用link,当然还有一些页面比较简单,流量很大的网站,是直接将CSS写在html代码中的?他们有什么区别?css用import还是link好?从经典论坛和另外一个网站大概了解了一下
看到淘宝网页中大部分是这样写的
<style type="text/css" media="screen">
@import url("http://www.taobao.com/home/css/global/v2.0.css?t=20070518.css");
</style>
而很多网站,比如我的 http://www.dayanmei.com 使用的都是link
<link rel="stylesheet" rev="stylesheet" href="default.css" type="text/css" media="all" />
而像google 百度 163等网站他们都是直接写在网页中
当然使用链接link和导入import的好处就是易于维护,但当网速比较慢的时候,会出现加载中断的情况,导致页面排版错误
他俩的作用相同
唯一的不同是服务对象不一样
@import 为CSS服务
link是为当前的页服务
经典有网友说 @import会优先执行。
下面转载一篇来自 http://www.dreamdu.com/blog/2007/05/11/css_link_import/ 的文章
外部引用CSS中 link与@import的区别
这两天刚写完XHTML加载CSS的几种方式,其中外部引用CSS分为两种方式link和@import。
本质上,这两种方式都是为了加载CSS文件,但还是存在着细微的差别。
* 差别1:老祖宗的差别。link属于XHTML标签,而@import完全是CSS提供的一种方式。
link标签除了可以加载CSS外,还可以做很多其它的事情,比如定义RSS,定义rel连接属性等,@import就只能加载CSS了。
* 差别2:加载顺序的差别。当一个页面被加载的时候(就是被浏览者浏览的时候),link引用的CSS会同时被加载,而@import引用的CSS 会等到页面全部被下载完再被加载。所以有时候浏览@import加载CSS的页面时开始会没有样式(就是闪烁),网速慢的时候还挺明显(梦之都加载CSS 的方式就是使用@import,我一边下载一边浏览梦之都网页时,就会出现上述问题)。
* 差别3:兼容性的差别。由于@import是CSS2.1提出的所以老的浏览器不支持,@import只有在IE5以上的才能识别,而link标签无此问题。
* 差别4:使用dom控制样式时的差别。当使用javascript控制dom去改变样式的时候,只能使用link标签,因为@import不是dom可以控制的。
大致就这几种差别了(如果还有什么差别,大家告诉我,我再补充上去),其它的都一样,从上面的分析来看,还是使用link标签比较好。
我转载这篇文章只是为了自己留个档, 其实我最想要的CSS功能是能够自动按照优先级来确定最后使用的样式, 而不是后面的简单覆盖前面的, 当然CSS的标准制定组织肯定有他们的打算。 既然标准是这样, 我们只能适应标准, 也只能将我需要的CSS嵌入在网页中。
有没有办法可以让一段CSS样式在某个HTML之后就失效? 也就是说CSS能不能指定有效期或者有效范围?
哦, 对了, 顺便问个问题, 有没有知道怎么可以在IE下调试javascript? 在Firefox下可以通过查看“错误控制台”来查找网页中的各种错误, 包括CSS,javascript之类的, 但在IE我就不知道该如何来查找了, 哪位知道的达人可以给个工具, 小弟在此谢过了。
您喜欢本文吗?即刻订阅"偶爱偶家",精彩文章不再错过!现在就给我们留个话吗?



12 responses to "用什么将CSS连入网页来?"
帮不了你,基本上来说这方面我是一张白纸。
其实我开始是打白痴的,又觉得对不住自己,白纸吧~~
偶一般都在FF下调试,如果FF正常,IE依然有错误的话,很多情况都是编码有问题,可以尝试将js的编码和网页的编码改成一致,如都改成utf-8,以前我被这样的问题困惑过很久,看对你有没有一点帮助哈!
cosbeta: 目前我也是这么做的, 不过昨天看到了一个叫IE develop 的软件, 说可以在IE下调试很多的东西, 我准备用用试试, 到时候上来汇报一下小白经历
小O同志这么快就开始做email回复通知了哇,厉害哦
cosbeta: 你这个反应速度有点慢啊, 难道前面几天都没有收到email啊? 我记得你也回复了这里的呀.
http://blog.2i2j.com/being-humble-opinion/publish-12-wordpress-thread-comment.html
wordpress thread comment 1.2 发布的时候不是就带了email回复通知吗? 看看我的日志吧, 哈哈.
不过这个email功能做得实在不怎么样? 里面内容怎么样弄得漂亮些? 有谁会, 给我弄个样式出来吧, 多谢了, cosbeta来帮忙?
下一步我的wordpress thread comment准备弄个ajax comment + thread comment, ajax发送, 然后集中显示, 不过看来难度有些大
偶最近也在学习css。。
漫步快点学好CSS, 给我的wp thread comment弄个好的框框出来, 我偶像你
这个急不得,偶工作比较忙,再加上要学的东西太多,
我也总是觉得有许多东西要学, 可又感觉没有时间去学, 都拿来闲逛了, 唉…..
漫步学啥呢? 有啥好学的东西?
工作所要用到的东西了,比如 struts spring hibernate 等哦,主要是java方面的。
@import既然在CSS2.1才提出来…还不是很清楚什么时候用..对于link
看差别每一条都是link优于import…