【问题标题】:inline-block appearing wider in Firefox/Safari than Chrome, spilling over lineinline-block 在 Firefox/Safari 中比 Chrome 更宽,溢出线条
【发布时间】:2013-02-23 03:30:13
【问题描述】:

我制作了this site。在 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;
    }
}

【问题讨论】:

    标签: html css browser cross-browser


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      .gecko .account-links a{}
      

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-02-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多