对于 link 元素style 元素 我相信大家都比较了解,但对于他们的出现位置可能有误解。

淘宝 的所有频道中出现这样一个问题:频道头部文件由于是统一支配的(为什么?历史原因!),所以我们无法在每个频道的 head 元素中以 link 或 style 方式加入各自的样式。最后选取了折中的方式,在主体内容中直接写入 style 元素,也就是说 style 元素置于了 body 元素中。

一切看着貌似很完美。其实不然,在 W3C 中对于 link 元素style 元素 出现的位置有详细的说明:

HTML permits any number of STYLE elements in the HEAD section of a document.

The LINK element defines a link. Unlike A, it may only appear in the HEAD section of a document, although it may appear any number of times.

也就是说 link 元素style 元素 必须出现在 head 元素中。

在下面的工作中,我们将会对页面中的这个错误进行优化,可能优化的进度不是理想中的速度(为什么?个人经验:历史原因的解决一向都不会很直接!)。

其实对于上面的问题,外国的开发人员有过相关讨论:

如果想温习一下样式的引入,可参读:《Style Sheets in HTML documents》

如有你想知道如何优化样式加载方式,可参读:《页面中 CSS 加载方式的优化》

共有4 条评论

  1. 1. 我的头像最帅! Lunatic Sun

    要给某一个页面或一组页面添加样式,应该选择在body上添加id或class的方法,而不应该将style或link元素放在body中。

  2. 2. 我的头像最帅! 怿飞

    @Lunatic Sun 当head元素内的内容不是你控制时,你是无法去用你说的方式去做的,毕竟不可能默认加载所有频道的样式。当然现在的这种流程上是错误的,我们会尽快的去修正这个不合理的流程造成的不好的后果。

  3. 3. 我的头像最帅! POOR

    大师,您的自画像也太不像了吧

  4. 4. 我的头像最帅! MacJi

    @poor 很像的呀。。。

发表评论

(必填)

(必填,会为您保密)

评论仅支持“a、abbr、strong、em、blockquote、code”几个简单的标签