【问题标题】:span tag height in FirefoxFirefox 中的 span 标签高度
【发布时间】:2010-09-06 16:55:17
【问题描述】:

使用 CSS,

我试图在 Firefox 中指定 span 标记的高度,但它只是不接受它(IE 接受)。

如果我使用div,Firefox 接受height,但使用div 的问题是它后面的换行符烦人,在这个特定的情况下我不能这样做。

我尝试设置CSS样式属性:

display: inline
用于 div,但 Firefox 似乎将其恢复为 span 行为并再次忽略 height 属性。

【问题讨论】:

    标签: html css firefox cross-browser


    【解决方案1】:

    因为你是内联显示它,所以高度应该设置为你的 line-height 属性的高度。

    根据布局的不同,您始终可以在 span/div 上使用 float:left 或 float:right 来防止换行。但如果你想把它放在句子的中间,这个选项就没有了。

    【讨论】:

      【解决方案2】:

      内联元素不能有这样的高度(也不能有宽度)。默认情况下,SPAN 已经是 display: inline。在这种情况下,Internet Explorer 实际上是损坏的浏览器。

      【讨论】:

        【解决方案3】:

        只有当 span 元素设置为 display: block; 时,您才能更改它的高度(和宽度)。这是因为它通常是一个内联元素。 div 通常设置为 display: block;。

        可以使用以下解决方案:

        <div style="background: #f00;">
            Text <span style="padding: 14px 0 14px 0; background: #ff0;">wooo</span> text.
        </div>
        

        【讨论】:

        • 不仅如此。它也适用于 display:inline-block、display:table 和其他一些。
        【解决方案4】:

        问题是'display: inline' 无法获得关联的高度,因为它是内联的,它从内容中获取高度。无论如何,你如何定义一个在行尾被打破的盒子的高度?

        您可以尝试设置“line-height”,或者如果这不能让您满意,请设置填充:

        /* makes the whole box higher by inserting a space between the border and the content */
        padding: 0.5em 0;
        

        【讨论】:

          【解决方案5】:
          <style>
          #div1 { float:left; height:20px; width:20px; }
          #div2 { float:left; height:30px; width:30px }
          </style>
          
          <div id="div1">FirstDiv</div>
          <div id="div2">SecondDiv</div>
          

          只要容纳div's 1 和 2 的容器足够宽以容纳它们,就可以了。

          【讨论】:

            【解决方案6】:

            您可以将任何元素设置为display: inline-block 以允许其接收高度或宽度。这也允许您将任何其他“块样式”应用于元素。

            需要注意的一点是 Firefox 2 不支持此属性。 Firefox 3 是第一个支持此属性的基于 Mozilla 的浏览器。所有其他浏览器都支持此属性,包括 Internet Explorer。

            请记住,inline-block 不允许您在 Firefox 上以 quirks 模式运行时设置元素内的文本对齐方式。据我所知,所有其他浏览器都允许这样做。如果要在 quirks 模式下运行时设置文本对齐,则必须使用属性 -moz-inline-stack 而不是 inline-block。请记住,这是 Mozilla 独有的属性,因此您必须进行一些浏览器检测,以确保只有 Mozilla 获得此属性,而其他浏览器获得标准的 inline-block。

            【讨论】:

            • 您可以通过指定这两个选项来摆脱浏览器嗅探,并使用 -moz 一秒钟。非 mozilla 浏览器将忽略 -moz 选项,但在 Firefox 中它将覆盖第一个设置。 "display:inline-block; display:-moz-inline-stack;"
            【解决方案7】:

            height in em = relative line-height

            例如height:1.1em 和line-height:1.1

            = 100% 填充

            【讨论】:

              【解决方案8】:

              您可以使用 padding 和 block-inline 属性调整元素内的文本对齐方式。显示:内联块;填充顶部:3px;例如

              【讨论】:

                【解决方案9】:

                设置跨度的高度应该在firefox中工作

                span {
                  display: block;
                  height: 50px;
                }
                

                【讨论】:

                  猜你喜欢
                  • 2015-04-07
                  • 2010-10-11
                  • 2013-08-16
                  • 1970-01-01
                  • 2014-01-26
                  • 2011-03-29
                  • 2012-11-03
                  • 2013-01-22
                  • 1970-01-01
                  相关资源
                  最近更新 更多