font-family属性在IE下的兼容性

font-family属性可以为标签设置字体,浏览器会从左至右依次查找是否有该字体,并将找到的第一个字体用于显示。如果没找到,则使用默认字体(Windows XP简体中文版一般是宋体)。
但还有个未定义行为,若找到的第一个是英文字体,而要显示汉字时,应该如何处理。Chrome和Firefox是继续往后查,直到找到能正确显示的字体;而IE(我只测试了IE6)则直接改用默认字体显示汉字了。

修复IE6的CSS显示bug

在大多数主流浏览器都已支持CSS2时,IE6这个使用率最高的浏览器却还只支持CSS1(例如:hover只能用于a标签),而且还存在大量的bug(例如不支持position: fixed),造成了编写网页时很多不便。

今天偶然发现了这个东西,特地分享下。

让IE支持position:fixed

由于IE6只支持CSS1,IE7对position:fixed的解释行为也不标准(不过可以无视),所以只能绕道解决了。
看到很多都是用JavaScript实现的,其实就用CSS也能解决。

让文字过长时自动显示省略号

不需要JavaScript,直接HTML+CSS就能实现:
<p style="width: 10em; overflow: hidden; text-overflow: ellipsis">
<nobr>这句话只能显示10个字符</nobr>
</p>
效果如下:


这句话只能显示10个字符

原来CSS也能挂马

由于IE浏览器可以用表达式来设置属性,而又未对表达式做检查,这就导致了一个安全问题。

:first-letter和:first-line伪类

本以为IE 6基本不支持伪类的,不过今天看到:first-letter和:first-line也可在IE 6下使用,于是测试了下,却没看出效果。

检查了半天原因,发现:first-letter只能作用于display: block的元素,而我测试的是span,默认为inline元素…

此外,IE 6中还有个要注意的问题,由于这个伪类存在连接符,所以后面不能紧跟大括号和逗号等字符,必须用空格分隔开(没想到逗号都不行,太囧了)。如果使用CSS压缩器的,就要特别注意下这个问题了。

强制换行应用word-wrap取代word-break

今天在写网页时又遇到换行的问题了,之前是用JavaScript解决的,不过我觉得太麻烦,想用纯CSS来做,于是就去Google了一下,很快就发现了word-break。

inline-block的使用及bug

在页面开发中最常用的2种显示类型就是inline和block了,然而它们都有或多或少的限制,所以偶尔还需要用到inline-block。(此外还有none等10多种,但是此处不讨论。)

« 看看还有什么好玩意