CSSTDG读书笔记十五
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才刚刚开始支持






