博客 - 文章更新

IE8 beta1 中的 CSS 属性

2008-05-9 上午 - 纯属扯淡 - - -

  IE8 (下文中的 IE8 暂时仅代表IE8 beta1) 中增加了 CSS3 中的子串匹配的属性选择器(substring matching attribute selectors),具体规则与正则中的匹配很相似:

  • E[att^=’val’] //子串以’val’ 开始
  • E[att$=’val’] //子串以’val’ 结束
  • E[att*=’val’] //子串中包含’val’

  IE8 支持绝大多数基本的 CSS2.1 选择器:

  1. :before and :after 被支持,只支持文本,不支持图片,但还存在bug 。
  2. :focus 被支持。
  3. display: inline-block 被支持(只能用于内联元素)。
  4. display: table 被支持。
  5. list-style 完全被支持,包括值 upper-greek (此值其他浏览器均未支持)。
  6. outline 被支持。
  7. border-collapse, border-spacing 和 caption-side 被支持。
  8. white-space 完全被支持。
  9. box-sizing 被支持,不过使用的是私有属性 -ms-box-sizing 。

  不支持的包括但不限于::first-line 、:first-letter、opacity 和 RGBA。

  对于原来用来区分 IE 的 HACK 在 IE8 中基本失效(比如*property:value、*property:value等)。

Update 08-3.8:

  1. 原有 IE 的 list-item whitespace bug 在 IE8 中依旧存在。
  2. 原有 IE 的 z-index bug 在 IE8 中依旧存在。
  3. IE8 中产生新的 bug:当 line-heigth 小于正常值时,超出的部分将被裁切掉。
  4. IE8 中依然不支持 border 的 transparent 值。
  5. IE8 中 @import 只支持三层嵌套。

Update 08-3.12:

  1. IE8 中 负数的text-indent 值会被裁切。
  2. IE8 中依然存在 Fuzzy Specificity Bug

No Comments »

页面中 CSS 加载方式的优化

2008-05-9 上午 - html/css/xml/xsl - -

1、应该将 CSS 放置于结构的上方(一般放置于 head 元素内)。CSS 是解释型语言,Firefox 和 IE 在等待 CSS 传输完成之前不会渲染任何东西。只有将 CSS 前置,才可在浏览器解析结构时,对页面进行渲染。

导致的问题就是,页面会有一段时间“朴素”,突然之间又“华丽”,用户体验很不好。

2、尽量使用 <link rel=”stylesheet” href=”http://www.planabc/yuanxin.css” type=”text/css”> 的样式导入方式,而减少 @import 的使用,更勿使用多层嵌套的 @import 。因为在 IE 里, @import 相当于将 <link> 放在页面尾部。

No Comments »

关于CSS的优先权

2008-05-9 上午 - html/css/xml/xsl - -

  CSS2.1 中规定了关于 CSS 规则 Specificity(特异性)的计算方式,用一个四位的数字串(注:CSS2 中是用三位)来表示,最后以 Specificity 的高低判断 CSS 的优先权。

  Specificity 计算规则:

  • 元素的 style 样式属性,加 1,0,0,0。
  • 每个 ID 选择符(#id),加 0,1,0,0。
  • 每个 class 选择符(.class)、每个属性选择符(例 [attr=”"] )、每个伪类(例 :hover),加 0,0,1,0。
  • 每个元素或伪元素(例 :firstchild)等,加 0,0,0,1。
  • 其他选择符(例 全局选择符 *,子选择符 >),加 0,0,0,0。

最后逐位相加数字串,得到最终的 Specificity 值,按照从左到右的顺序逐位比较。

除了 Specificity 还有一些其他规则:

  • !important 声明的规则高于一切,如果 !important 声明冲突,则比较优先权。
  • 如果优先权一样,则按源码中“后来者居上”的原则。
  • 由继承而得到的样式属性不参与 specificity 的计算,低于一切其他规则(例 全局选择符 * )。

No Comments »

把JS与CSS可在同一个文件里共存

2008-05-9 上午 - JS/Ajax/AS, html/css/xml/xsl - -

  今天看了aoao的blog,学到了这一招,和大家分享一下。

<!– /* window.onload=function(){ document.getElementById(“test2″).innerHTML=”传说中滴JS测试者。如果你看到我,那JS也生效了”; } <!– */ <!– #test1,#test2{border:3px #000 solid;padding:5px;color:#123456;background-color:#ccc;} strong{color:red;}

  在网上运行时还要通过程序输出个“*/*”的头,不然MIME不对有的浏览器不干活。PHP的是这样:

  <?header(’Content-type: */*’);?>

  理论上在服务器上指定某种后缀的MIME是“*/*”应用也行得通,不过我没有试。把JS跟CSS写在同一个文件特别适合第三方调用的那种,虽然文件大了一点,但能少了一半的请求数,帅帅滴。补充说明,直接这样使用会是两个200的,要节省还要涉及到服务器配置,最少我还不知道单程序可以实现的。

  如果你有兴趣,那么复制代码。测试一下。怎么样?神吧!其实也没什么,只是充分利用了注释符。不过还真未曾想到还有此一招。佩服佩服!

No Comments »

overflow真的有问题吗

2008-05-8 下午 - html/css/xml/xsl - -

  今天晚上闲了,去了一些大的门户网溜达了一圈,发现了一个仅 IE6会存在的问题(暂时仅发现IE6),在某些区块上,我的鼠标中键居然失效了。很郁闷,一开始还以为自己的鼠标有问题了。后来一想不对劲,怎么就光在这个网站上就会产生呢?html肯定有问题,这就让我想到了之前在一篇文章里面看到了对overflow这个家伙的一些唠叨。

  网页另存为一下。仔细一看,这个让我鼠标中键失效的区块的确实加了overflow这个家伙的,我去掉它以后,再次预览,问题得以解决。看来这个家伙不能乱用噢。

  我又立刻去网上查了相关的资料。确有此事,而且问题还不仅仅只有一个。

  另外存在的一个问题即,导致键盘的Tab键也不听使唤啦!这下用键盘浏览网页的朋友可就麻烦了(我们不排除会有用键盘操作的用户)。

  我要说的是,我一直以来不喜欢用到这个家伙,几乎不用,除非在必须要用到区块滚动条的时候才用(为了节省面积,或者说是版式布局上的需要)。

  最后,这个其实只是一个很微小的问题,你可以不在乎。如果你注重用户体验及WEB标准,那么就转变一下自己的观点吧,虽然这个家伙很好用,也的确有时候帮忙不少。

No Comments »

长假归来调整心态工作

2008-05-5 下午 - 生活点滴 - -

  51长假过去了,有成一段美好的回忆。其实也谈不上什么美好。

  在家待了3天,只能说是好好的休息了3天。这一休息到好,把人给休息懒了,动都不想动了。今天开始上班了,心里还挺高兴的。玩了几天下来,觉得无聊,还宁愿上班,这样时间好打发,一下子就是一天。恍恍惚惚的就过去了。

  现在心里想着拼搏,再拼搏。激情又再复燃。好舒坦啊!

No Comments »

火箭,把悲伤留给自己了

2008-05-3 下午 - 纯属扯淡 - -

  我不是太懂NBA,但是我的确是一球迷,深爱着篮球。火箭结束了本赛季的比赛了,以总比分2-4败北了爵士,这其实很正常,缺少了姚明的火箭,失去了内线,也失去了主动权。能胜两场已是十分的不容易了。毕竟两对的差距还是很明显的,这很容易就能看出来。

  不错,火箭队的却有麦迪这样优秀的球员,可只能说是孤立无援,没有一个很好的人员能与他接应。光靠一个人的力量是赢不了球的。这个也早就证明了。

  期待下个赛季的火箭能更精彩,也期待姚明,其实火箭如果没有姚明,根本不会在国内这样受关注。这是众所周知的。

  麦迪,你就悲伤一回吧,不过相信,你会笑到最后的。

No Comments »

这个51很普通

2008-05-2 上午 - 生活点滴 -

  30号就放假了。在家里待了一天,晚上去步行街购物了。不是为自己,是陪女朋友去的。还算开心,只是走得很累,回家后躺在床上一动也不想动。转眼就睡着了!

  第二天,就是51当天了。一大早起床,才刚刚8点,做好准备工作,去欢乐谷,可这时天下起了雨,只有等!

  快10点的时候,雨停了,就立刻出发,一路上心情还不错。只可惜,刚到地铁站的入口,雨点又打了下来。没办法,不可能花几百块,站在欢乐谷躲雨吧!

  打道回府,和女朋友在家看了一天的电影,看着时间一分一秒的过去了,天又黑了!
这就是51。并不是我想要的!

  呵呵,期待下一个51吧!一年嘛,很快就过去了!

No Comments »