0

我做了这个网站。在 Chrome (v24.0) 上,一切都按预期显示。当我在 Safari 或 Firefox 中查看它时,布局中断:右上角的“查看购物车”和“结帐”链接溢出到额外的一行。很难描述,但是比较它们在 Chrome(正确)与 Firefox 和 Safari(错误)中的外观,我的意思应该很明显。

我怎样才能解决这个问题?我尝试过的所有成功解决了 Firefox 和 Safari 中的问题的方法都只是在 Chrome 中破坏了它。

我当前的 CSS(Sass):

.account-links {
    font-size: 0;
}

.account-links a {

    box-sizing: border-box;
    width: 90px;

    margin: 0px;
    font-size:9pt;

    -moz-box-shadow:inset 0px 0px 0px 0px #ffffff;
    -webkit-box-shadow:inset 0px 0px 0px 0px #ffffff;
    box-shadow:inset 0px 0px 0px 0px #ffffff;
    background:-webkit-gradient( linear,
                                 left top, left bottom,
                                 color-stop(0.05, #f9f9f9),
                                 color-stop(1, #e9e9e9) );
    background:-moz-linear-gradient( center top,
                                     #f9f9f9 5%, #e9e9e9 100% );
    filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f9f9f9', endColorstr='#e9e9e9');
    background-color:#f9f9f9;
    border-top:1px solid #dcdcdc;
    border-bottom:1px solid #dcdcdc;
    &:first-child {
      border-right:1px solid #dcdcdc;
    }
    display:inline-block;
    color:#666666;
    font-family:arial;
    font-weight:bold;
    padding: 5px 0px;
    text-decoration:none;
    text-shadow:0px 1px 0px #ffffff;
    &:hover {
      background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #e9e9e9), color-stop(1, #f9f9f9) );
      background:-moz-linear-gradient( center top, #e9e9e9 5%, #f9f9f9 100% );
      filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#e9e9e9', endColorstr='#f9f9f9');
      background-color:#e9e9e9;
    }
    &:active {
   position:relative;
      top:1px;
    }
}
4

2 回答 2

0

我在 Chrome 上遇到过几次这样的问题。大多数时候我都能弄明白,但有几次我不得不求助于这个:css_browser_selector.js

基本上它允许您像这样编写 css:

.gecko .account-links a{}

然后,它将将该 css 应用于使用 gecko 引擎(即 Firefox)的浏览器。我在几个生产站点上使用它(主要用于 IE,但也用于 Firefox 一次或两次)并且我没有遇到任何问题。

这意味着您可以将您的解决方案用于 Firefox 和 Safari,而不会破坏 Chrome 中的工作原理。

于 2013-02-22T19:02:32.053 回答
0

那是因为您使用的是不带前缀box-sizing的 for #shop-meta .account-links a。添加-moz-box-sizing: border-box and-webkit-box-sizing: border-box它应该按预期工作。

编辑:实际上我发现 Safari 中存在一些错误(对于 Windows 使用 v5.1.7),它会阻止 box-sizing 正常工作。该浏览器的解决方案是设置float: left.account-links a. 你不需要-webkit-box-sizing

于 2013-02-22T19:19:51.557 回答