無標題文檔

import vs link

对于 CSS 的载入方式,在这里咬文嚼字下。这篇主要探讨 CSS 的两种载入方式:@import 和 link 元素间的差异。

link 是在 (X)HTML 文档中的语义是「 页面资源 」(当然也会包括 CSS),而 @import 只是 CSS2.1 的语句。

使用 @import 可以使各 CSS 文件间相互嵌套。在 Explorer5.x 时代, 同时也是浏览器间判断是否支持 CSS2.1 的一个方法

其实,我们最关注的是 @import 和 link 两种不同的 CSS 载入方式的性能问题。先写了两个简单的脚本,让 CSS 文件延时 5 中载入,可以在各浏览器下看看结果 使用 @import 使用 link

可以看见,Exploer 系列在使用 @import 方式时,会先载入文档,然后再载入样式;而在其他浏览器以及其他情况下,都需要等待样式载入完毕以后统一渲染。

总结下我个人的看法。我个人倾向于使用 link 方式,主要是下面的几个原因

  1. CSS 文件也是页面资源的一部分(更佳的语义)
  2. 没有各浏览器间的载入分歧
  3. 便于 Javascript 操作(link 是 HTML 结构的一部分,而 @import 载入的只能操作 style 节点)

当然,应用 @import 的场合也很多,比如在无法更改页面结构、或者是需要统一的 CSS 入口的情况下等。

参考阅读

我的栅格系统实现

https://friable.rocks/_/2009_11_05/25552637224d.jpg

如果没有了解栅格系统是什么,建议 看完这篇文章 以后再回来。

其实有很种 CSS 写法实现栅格系统,很多 CSS 库也都会提供类似的栅格系统实现(譬如: YUIBluePrint )。

引用 One True Layout 文中所言,良好的布局应该具有的几个特性:

  1. 具有一定的灵活性
  2. 等高
  3. 基于栅格

请允许我「重复造了轮子」,我的栅格系统实现是基于 「伪绝对定位布局」 ,这样可以更好的实现上述所言的几个特征(很难解释,还是直接看 DEMO )。

http://friable.rocks/grids/index.html 定义的 950px 宽度为公式 W )

column-24 start-01

因为是上述「伪绝对定位」的布局,所以相应列之间不会相互影响。而理解上述布局可能需要些时间,同时感谢师兄那么详细的讲解,我相信也会给你带来收获。

另, 感谢 Missx 提供栅格标准

  1. 黄金分割标准:右边的大小一般是左边大小的黄金比例
  2. 平分:在1024的分辨率下,一般采用330左右的分割
  3. 两栏分割:左边660 右边260左右
  4. 三栏分割:左边是200左右 中间400左右 右边300左右
  5. 三栏分割:右边两栏之和是左边的0.618
  6. 三栏分割:中间180 两边分别为380左右

很难具体的解释其中的细节,但是希望有问题的朋友能够留言,我尽量帮你解答。

针对 Safari(WebKit)的 CSS 注意事项

Google Chrome 的发布 ,使我们更加的注重基于 WebKit 核心的浏览器的表现情况,但我们很多时候「不小心」就会出现问题。考虑下面极端的情况

.box {
    background: red;
    #
    background: yellow;
    background: #green;
}

经过测试发现,Exploer 系列浏览器会显示黄色(yellow),Firefox 与 Opera 则会显示红色(red),而 Safari 以及 Chrome 则会显示绿色(green)。

按照本人的理解,这是各浏览器 CSS 解释上的差异造成的。首先,Safari 会对于 #red 这样的「常量颜色值」会尝试解析,而其他浏览器则取「#」后面的 16 进制色值。

然后对于

.box {
    #
    background: yellow;
}

的理解,Exploer 系列会直接解析成 background: yellow; 而其他浏览器则等待「;」然后连接起来,所以不起作用。类似的可以使用

.box {
    .
    background: yellow;
}

测试下。但如果语句后面加上分号「;」

.box {
    #; /* 或者 .; */
    background: yellow;
}

则会恢复正常。可以 参考这里 ,获得更进步的详细信息。

总结下的结论,首先,比如你想针对 Exploer 仅 Hack 一条语句,那么可以在其上行简单加个「.」或者「#」,这仅适合临时调试使用。

其次,期前如果不小心写成 #red 这样的色值,可能会无关要紧。但就目前众多的浏览器情况而言,可能就会有上述意想不到的结果,所以 CSS 方面的细节我们要更慎重的对待。

我的照片

嗨!我叫「明城」,八零后、码农、宁波佬,现居杭州。除了这里,同时也欢迎您关注我的 GitHubTwitterInstagram 等。

这个 Blog 原先的名字叫 Gracecode.com 、现在叫 「無標題文檔」 。 要知道作为码农取名是件很难的事情,所以不想在取名这事情上太费心思。

作为八零后,自认为还仅存点点可能不怎么被理解的幽默感,以及对平淡生活的追求和向往。 为了避免不必要的麻烦,声明本站所输出的内容以及观点仅代表个人,不代表自己所服务公司或组织的任何立场。

如果您想联系我,可以发我邮件 `echo bWluZ2NoZW5nQG91dGxvb2suY29tCg== | base64 -d`

分类

搜索

文章