【发布时间】:2013-01-19 06:09:54
【问题描述】:
我使用 css 设计了一个导航列表。下面是我的代码
ul#mainnavigation li a {
font: 14px/20px 'Open Sans', Open Sans, Helvetica, Arial, sans-serif;
position:relative;
font-weight:600;
color:#686868;
margin:0;
padding:0 19.7px;
height:50px;
line-height:50px;
display:inline-block;
-webkit-transition:color 0.1s linear, background 0.1s linear, border-left-color 0.1s linear, border-bottom-color 0.1s linear;
-moz-transition:color 0.1s linear, background 0.1s linear, border-left-color 0.1s linear, border-bottom-color 0.1s linear;
-o-transition:color 0.1s linear, background 0.1s linear, border-left-color 0.1s linear, border-bottom-color 0.1s linear;
transition:color 0.1s linear, background 0.1s linear, border-left-color 0.1s linear, border-bottom-color 0.1s linear;
z-index:100;
}
我遇到的问题是在 Firefox 中它运行良好,但在 chrome 中,最后一个导航元素在下方消失了。
在 Firefox 中 padding:0 25.7px; 给出正确的结果
在 chrome 中 padding: 0 26.5px; 给出正确的结果
如何确保填充在两个浏览器上都能正常工作?
注意:我已将文档类型定义为<!DOCTYPE html>
【问题讨论】:
-
您是否在使用重置样式表..?
-
我猜这两个浏览器计算十进制像素宽度的方式不同。就此而言,当使用像素时,您正在处理您可以在屏幕上使用的最有限的单位,那么为什么您甚至需要一个小数呢?只需使用 25 或 26,然后无论如何它都应该是通用的。
-
使用
display: block; float: left;而不是display: inline-block; -
@danp 我没有使用重置样式表。
-
我会完全避免小数像素,因为不同的浏览器对待它们的方式不同。一些向上,一些向下,还有一些截断。见ejohn.org/blog/sub-pixel-problems-in-css