一起CSS

当前位置:一起CSS > CSS > 文章正文

“导”字导致样式失效

日期:2010-06-3 分类:CSS

编码是一个标准页面所必须的,但有些人不太在意。或者不定义编码,或者混用编码。也许一般情况下不会出问题,但出了问题就很难会注意到和编码有关系。

一位朋友就因为混用编码引发了一个奇怪的问题:样式文件内的部分样式失效,而代码没有任何错误。你没遇见过这样的问题吧?来看看具体是什么情况:

这位朋友的 HTML 文件的编码为 gb2312 ,而 CSS 文件是 utf-8 的,CSS 文件里有一条注释为“/*导航条*/”。这些有问题吗?对!也许他们不同时存在就没问题,但他们存在了就产生了一个奇怪的问题:注释“/*导航条*/”与下一条注释之间的样式在 IE 下没有效果,如果没有下一条注释了,则下面的样式全部没有效果。不光是 IE6 、IE7 ,甚至 IE8 、IE9预览版都没有效果。用 IE 浏览器测试下面的地址试试吧。

查看Demo

从测试页面可以看到有两条样式失效了,分别是:字体红色和下划线。奇怪的是把“导”字或“航”字删掉,样式就起效果了。更奇怪的是“导”字或“航”字他们的总数是基数的时候,如“/*导导航条*”或"/*导导导条*/",是偶数的时候又失效,如“/*导航导航条*/”或“/*导导航航条*/”。

避免问题的方法还有:

  1. 统一编码
  2. 注释用英文或拼音
  3. 注释结束和开头与注释间留空格,如“/* 导航条 */”

最好的办法是统一编码,因为编码不统一,也许还有其他潜在的问题。

如果我们认为这个问题是中文文字引起的,那可能还会有其他文字会引起这样的问题。不过我国的文字有几万个,我们不可能一个一个去试,这只是根据上面情况的一种推测。

查看:1,042 评论:5 标签:

相关日志

共有 5 条评论

  • 龙子 说:

    以前也碰见过这种问题,百思不得其解,今天总算是明白了。
    谢谢分享!

  • uoian 说:

    奇数,偶数中文字编码引起的。和导字没有关系吧。还是统一编码的好。

  • zchiy2k 说:

    “基数”—》“奇数”。
    我最近也遇到了一个问题,想请教一下,比如在firefox下对font-size:150%,到了IE8中字体就变得巨大无比,跟ff中的效果差的很多。最后只能用px来定义,字体使用的雅黑,font属性在ff和IE还有什么区别吗??
    第一次来就又挑错字又问问题的,实在不好意思。。。

  • keelii 说:

    这东西也太诡异了,感觉IE的bug还是潜在的多呀!根本就搞不清楚什么情况的bug

  • 小骆驼商队 说:

    我也遇到过用中文注释导致样式失效的问题,当时花了好几个小时才发现是注释导致的,郁闷
    之后都用英文写注释了……

发表留言

请言之有物,无意义留言或只为留链接留言一律不予通过!

提示: 您可以使用一些简单的标签: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

分类

最新日志

最新评论

存档

链接

  • 亚当学院
  • CSS视频教程下载
  • 前沿视频教室
  • 前端爱好者
  • GoodText
  • Kily`s Blog
  • mymickey
  • 秦丰网站策划
  • 奥想创意
  • 我的职业生涯
  • 蜗爱CSS
  • 蜈蚣's Blog
  • web标准学习—小辉博客
  • 十字花匠

© Copyright 2010 一起CSS All Rights Reserved