by kevin
3.
六月 2013 13:54
>
这几天,在写CSS的时候,碰到两个问题。
1. 对chrome下只用做background的td标签height设置为5px,但实际显示的效果是6px。
解决的方法是:在td内添加一个div,设置div的height为5px;
原始代码:
1: <td class="top" colspan="6"></td>
2: <style>
3: .top {width: 1183px; padding: 0px; height:5px; background-image: url(/Content/Image/UI/Order/myorder_top.png); background-repeat: no-repeat; }
4: </style>
改进后:
1: <td class="top" colspan="6">
2: <div class="topContent"></div>
3: </td>
4: <style>
5: .top {width: 1183px; padding: 0px; height: 5px;}
6: #myOrder .item .top { height: 5px \9;} /*ie8*/
7: .topContent {padding: 0px;height: 5px; background-image: url(/Content/Image/UI/Order/myorder_top.png); background-repeat: no-repeat; }
8: </style>
2. 对chrome下只用做background的td标签height设置为5px,但实际显示的效果是6px。
解决的方法是:利用webkit的css hack,将width设置为4px.
原始代码:
1: #myOrder .item .right { width: 5px; padding: 0px;background-image: url(/Content/Image/UI/Order/myorder_left.png); background-repeat: repeat-y;}
改进后:
1: #myOrder .item .right { width: 5px; padding: 0px;background-image: url(/Content/Image/UI/Order/myorder_left.png); background-repeat: repeat-y;}
2: @media screen and (-webkit-min-device-pixel-ratio:0){#myOrder .item .right{ width: 4px; } }
width偏差的原因:google了下,说是自动表格布局下,各个浏览器对最小单元格宽度(MCW)的表现不一样。猜想height偏差估计也是相同的道理。
参考资料:
自动表格布局:http://www.w3.org/TR/CSS21/tables.html#auto-table-layout
width偏差:http://w3help.org/zh-cn/causes/RE8018
http://w3help.org/zh-cn/causes/RE9019