CSSTDG读书笔记十五

2006.03.2408:33

Chapter 13. User Interface Styles

CSS2定义了六种系统字体方案:
caption/icon/menu/message-box/small-caption/status-bar

这些值只能用于font属性,也就是说它们都是一系列值(字体字号等等)的集合。

系统颜色已经在CSS2.1和CSS3中去除,不建议使用。

cursor如果使用uri指定一个用户自定义的鼠标光标,则必须要一个备份的关键字属性,比如default等。

a.external {cursor: url(globe.cur), pointer;}

Firefox1.5已经支持cursor的uri属性了。

outline是独立出文档本身的,不占地方,好比一个absolute的元素,所以它的消失和出现都不会让页面reflow。outline可以不是矩形,inline元素如果折行,outline会融合。

说到outline就想起Firefox1.5刚出来时候的那个虚线框的问题了,当时我特意去翻了css规范里面关于outline的的说明,上面是这么写的:The outline may be drawn starting just outside the border edge。所以我当时认为这是Firefox1.5的bug,没想到刚看到这章,Meyer还特意把这句话拎出来提了一下,让读者注意规范的措词——规范用了一个关键字may,就是说可以这么画也可以不这么画,真是晕啊,咬文嚼字的功力了得……这么一看Firefox1.5对虚线框的处理就不能说是bug了,怎么也应该是规范允许范围内的自由发挥。有趣的是他还提到,到目前写书的时候为止,所幸所有浏览器还都是统一地按照规范的这个提议来画outline的,哪曾想Firefox居然中途改道了,也不知他们是无意还是有意。

outline不像border分上下左右,它是一刀切的,所有边都一样,因为不像border是矩形,outline可能是不规则的形状,所以也不好划分上下左右。

outline-style和border-style唯一的不同是outline没有hidden只有none,这比较好理解,因为outline是不占地方的,所以hidden还是none都一样。

outline-color和border有个很大的不同,它有一个特殊的属性invert,效果就是在outline覆盖范围内颜色反向,我想利用outline应该可以作出一些有趣的效果。如果浏览器不支持invert,那颜色将继承自其内文字的颜色。

作者还提到目前的CSS只允许在元素周围的地方画outline,如果以后CSS允许outline往里画,应该会更有趣。另外CSS没有说明如果两个不同元素的outline重叠的时候应该怎么处理。

最后说一句,IE包括IE7都不支持outline的自定义,Firefox也是1.5才刚刚开始支持

4 Comments Comment RSS »

The URI to TrackBack this entry is: http://old9.blogsome.com/2006/03/24/csstdg15/trackback/

  1. 请问是TDG 2nd Edition吗?

    Comment by chinalsf — 2006.8.02 @ 08:59

  2. 嗯是2nd edition,这个读书笔记系列的一篇里面有写。

    Comment by old9 — 2006.8.02 @ 09:17

  3. 是嘛!可能我还没看到你说的那一篇:),写很不错!对了,能推荐几本CSS的书吗?

    Comment by chinalsf — 2006.8.03 @ 08:29

  4. 推荐的话还是推荐看 W3C 的 CSS2.1 specification
    然后就是这本书了,呵呵。

    Comment by old9 — 2006.8.03 @ 13:40

Leave a comment

Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>


为防评论机器人,劳驾您输入图片中的字符 :)
captcha