Firefox的奇怪行为和身高100%

时间:2016-04-27 15:05:26

标签: html css firefox

我正在编写标记和样式,这对于body / html 100%高度来说是一种相当简单和常见的方法。我已经包含了一些简单的重置样式和一些基本样式。我有一个块级元素,绝对定位有指定的bottom: 0;属性和值。

这就是奇怪的事情:当我指定font-familyArial时,它会在Firefox(46.0)中创建一个垂直滚动条。

我已经多次这样做了,没有注意到或体验过似乎像Firefox一样的错误。

我知道是的,我可以:

  1. overflow属性设置为hidden
  2. 我已经尝试过,并且能够确定以下内容:

    1. 删除body {line-height: 1;}可解决问题
    2. 删除或重置font-family分配回serif
    3. 尽管如此,这些都不是一个可行的选择。 这让我很沮丧。我错过了什么吗?

      /* http://meyerweb.com/eric/tools/css/reset/ 
         v2.0 | 20110126
         License: none (public domain)
      */
      
      html, body, div, span, applet, object, iframe,
      h1, h2, h3, h4, h5, h6, p, blockquote, pre,
      a, abbr, acronym, address, big, cite, code,
      del, dfn, em, img, ins, kbd, q, s, samp,
      small, strike, strong, sub, sup, tt, var,
      b, u, i, center,
      dl, dt, dd, ol, ul, li,
      fieldset, form, label, legend,
      table, caption, tbody, tfoot, thead, tr, th, td,
      article, aside, canvas, details, embed, 
      figure, figcaption, footer, header, hgroup, 
      menu, nav, output, ruby, section, summary,
      time, mark, audio, video {
        margin: 0;
        padding: 0;
        border: 0;
        font-size: 100%;
        font: inherit;
        vertical-align: baseline;
      }
      /* HTML5 display-role reset for older browsers */
      article, aside, details, figcaption, figure, 
      footer, header, hgroup, menu, nav, section {
        display: block;
      }
      body {
        line-height: 1;
      }
      ol, ul {
        list-style: none;
      }
      blockquote, q {
        quotes: none;
      }
      blockquote:before, blockquote:after,
      q:before, q:after {
        content: '';
        content: none;
      }
      table {
        border-collapse: collapse;
        border-spacing: 0;
      }
      
      /* < Reset (end) -------------------------------- */
      
      html {
        background-color: blue;
        font-family: Arial;
      }
      html,
      body {
        height: 100%;
      }
      p {
        font-family: Arial;
        max-width: 200px;
      }
      .footernav {
        width: 100%;
        position: absolute;
        bottom: 0;
        left: 0;
        background: red;
      }
      <nav class="footernav">
        <p>Hello World! Vestibulum id ligula porta felis euismod semper. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.</p>
      </nav>

2 个答案:

答案 0 :(得分:0)

我不知道问题的原因是什么,但是如果你正在寻找一个不同的问题解决方案,那么你可以使用overflow:隐藏在你的footernav div上

.footernav {
  width: 100%;
  position: absolute;
  bottom: 0;
  left: 0;
  background: red;
  overflow:hidden;
}

http://codepen.io/lukemeaden/pen/mPzbam

答案 1 :(得分:0)

将一些垂直填充(例如.2em)添加到文本容器(示例中为P元素),这样就不会强制Firefox显示垂直滚动条只是为了完全显示文本由于line-height值不足以适合文本内容。

要查看文本所需的真实空间,请通过Ctrl+A选择它,如果没有补偿垂直填充,您将看到选择超出容器的底部边缘。

Live demo

顺便说一句,根据我的经验,最佳默认line-height1.25;它提供了跨浏览器的一致性,同时在大多数情况下适应整条线而没有线相互重叠。