Archive for 九月, 2009

Date: 九月 21st, 2009
Cate: css

使用print css的时候切不可脱离文档流和限定宽度

IE6, IE7, Firefox在media="print"的时候对于position=absolute的处理迥异.
其中一个很严重的问题是IE下面,print的时候对于postion=absolute这种脱离文档流的页面会有截断现象.
如宽度过长横向截断, 又如页面最后一行或第一行截断, 如下图:

但有时候Firefox不写position=absolute反倒会只显示一页并且最后一行截断, 反而要加上这个设定才能正常.

所以切记, 不要在IE中print的时候做任何脱离文档流的设定, 如position=absolute或者float.
在Firefox中遇到问题则可尝试设定脱离文档流.
以后如果遇到这种情形也应该先排查是否属于此种情形.

同时的,在IE7/Firefox中, 在print的时候如果文档中有设定宽度超过纸张宽度,在默认的Shrink To Fit模式下,字体会缩的很小. 而在IE6下则显示为超过部分被截断.
因此解决方法显而易见应该是去除原宽度设定, 改为使用width=100%(也可以视情形而定).

Date: 九月 5th, 2009
Cate: css

IE6/7下table的padding无效

也许是我落伍了, 居然现在才遇到这个bt的bug:

table {
    padding:10px;
}

居然无法生效. 似乎除了在外面套一个div或者把里面的东西手工的做出margin外没什么更好的办法. sigh.
唯一庆幸的是IE8已经解决了这个问题.

而坏消息是IE6还占据60%的市场.

想到一个迂回的方法, 当table本身不要求border的时候, 可以用border来代替padding.

table {
    border:10px;
}

真实的需要table padding的原因其实是为了提供一个背景, border占位效果其实是一样的.