【问题标题】:Chrome not picking up margins for centering, works in safari and firefoxChrome 没有获得居中的边距,适用于 safari 和 firefox
【发布时间】:2015-11-11 03:52:59
【问题描述】:

我遇到了一个问题,谷歌浏览器没有在我的菜单标题中选择左边距和右边距以使跨度居中。我进行了搜索,但似乎找不到有效的解决方案。它在 Safari 和 Firefox 中运行良好。有人可以解释或指出我正确的方向吗?我希望有一个没有 css hack 的解决方案。

菜单是一个包含 5 个元素的水平列表,第 3 个元素是我将放置徽标和标题的元素。我将这三个都放入一个跨度中,并为带有徽标的跨度提供一个 bg 图像和一个文本缩进。带有标题的跨度在所有浏览器中都显示得很好,带有徽标的跨度仅在 safari en firefox 中显示良好,而不是在 chrome 中。 我在加载样式表之前加载了 normalize.css。

<!-- language: lang-html -->
<nav class="main-nav">
        <ul id="menu" class="main-nav-list">
          <li class="main-nav-item main-nav-hover"><a href="#pagesection" class="main-nav-link test" title="Over ons">Over ons</a></li>
          <li class="main-nav-item main-nav-hover"><a href="#pagesection" class="main-nav-link" title="Wat we doen">Wat we doen</a></li>
           <li class="main-nav-item">
            <div class="main-nav-home">
                <span class="main-nav-title">title</span>
                <span class="main-nav-subtitle">slogan</span>
                <span class="main-nav-logo">Logo</span>
              </div>
            </li>
          <li class="main-nav-item main-nav-hover"><a href="#pagesection" class="main-nav-link" title="Portfolio">Portfolio</a></li>
          <li class="main-nav-item main-nav-hover"><a href="#pagesection" class="main-nav-link" title="Contact">Contact</a></li>
        </ul>
    </nav>

<!-- language: css -->
nav {
    position: fixed;
    background-color: #000;
    width: 100%;
    height: 100px;
    top: 0;
    left: 0;
    z-index: 10;
    border-bottom: 5px solid #333;
}
.main-nav {
    width: 100%;
}
.main-nav-list {
    position: relative;
    overflow: hidden;
    padding: 0;
    display: inline;
    margin: 0;
}
.main-nav-item {
    position: relative;
    display: block;
    list-style: none;
    float: left;
    text-align: center;
    width: 20%; /* fallback for non-calc() browsers */
    width: calc(100% / 5);
    height: auto;
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

.main-nav-home {
    position: relative;
    width: 100%;
    height: 300px;
    margin-left: auto;
    margin-right: auto;
}
.main-nav-title {
  text-decoration: none;
  display : block;
  color: #00ffff;
  font-size: 34px;
  font-family: 'trenchthin';
  text-align: center;
  color: #fff;
  width: 100%;
  margin-top: -1%;
  }
.main-nav-subtitle {
    text-decoration: none;
    display : block;
    color: #00ffff;
    font-size: 17px;
    font-family: 'nexa_lightregular';
    white-space: nowrap;
    width: 100%;
    margin-top: -3%;
    margin-left: -2px;
}
.main-nav-logo {
    display : block;
    text-indent: -9999px;
    z-index: 11;
    position: fixed;
    width: 20%;
    height: 100px;
    margin-left: auto;
    margin-right: auto;
    color: #fff;
    text-decoration: none;
    border: 0;
    padding : 0;
    background : url('../images/logo.png');
    background-size: 100px 100px;
    background-repeat: no-repeat;
    background-position: center;
}

【问题讨论】:

    标签: html css


    【解决方案1】:

    &lt;span class="main-nav-logo"&gt;Logo&lt;/span&gt; 上的 CSS 样式存在一些问题

    您正在使用 position: fixed 忽略左右自动边距。

    您可以通过更改样式来修复:

    .main-nav-logo {
      display : block;
      text-indent: -9999px;
      z-index: 11;
      position: fixed;
      left: 50%;
      width: 20%;
      height: 100px;
      margin-left: -10%; /* half of the width of the element */
      color: #fff;
      text-decoration: none;
      border: 0;
      padding : 0;
      background : url('../images/logo.png');
      background-size: 100px 100px;
      background-repeat: no-repeat;
      background-position: center;
    }
    

    通过添加left: 50%margin-left: -10%,这是width: 20% 的一半,您将使其居中。

    这是一个 JSFIDDLE 来显示解决方案减去 text-indent: -9999px; 来显示其居中。

    希望对您有所帮助。

    【讨论】:

      【解决方案2】:

      在发布到 stackoverflow 时重新阅读了我的问题后,我想通了! 我删除了徽标跨度,并将背景添加到 main-nav-home div,现在一切都显示得很完美。

      无论如何,谢谢! :-)

      解决了!

      【讨论】:

      • 好的,我在考虑不要更改标记,以防它是故意的。很高兴你明白了。
      猜你喜欢
      • 2011-08-30
      • 1970-01-01
      • 2016-05-11
      • 2016-07-01
      • 1970-01-01
      • 2019-01-26
      • 1970-01-01
      • 2020-03-22
      • 1970-01-01
      相关资源
      最近更新 更多