如何为 SPAN 设置高度属性

Posted

技术标签:

【中文标题】如何为 SPAN 设置高度属性【英文标题】:How to set height property for SPAN 【发布时间】:2011-01-21 14:05:52 【问题描述】:

我需要使下面的代码具有预定义的高度可拉伸

<style>
.title
   background: url(bg.gif) no-repeat bottom right;
   height: 25px;

</style>

<span class="title">This is title</span>

但由于 span 是内联元素,“height”属性将不起作用。

我尝试使用 div 代替,但它会扩大到上部元素的宽度。并且宽度应该是灵活的。

谁能为此提出任何好的解决方案?

提前致谢。

【问题讨论】:

您应该使用标题标签(h1、h2、h3、...)作为标题。它在语义上更正确。 是的,你说得对。感谢大家的帮助。这是我最后的CSS。它对我很有用: 【参考方案1】:

在这种情况下为什么需要跨度?如果要设置高度样式,可以只使用 div 吗?您可以尝试使用 display: inline 的 div,尽管这可能会遇到相同的问题,因为您实际上会做与 span 相同的事情。

【讨论】:

或者,完全忽略我的胡言乱语,使用 henasraf 的回答 :) 投反对票 cmets 只会阻止那些想要合法贡献的人。停下来!只是提供一些建设性的反馈,或者可能更重要的是,你对此事的看法。【参考方案2】:

在 CSS 中给它一个 display:inline-block - 这应该让它做你想做的事。 在兼容性方面:IE6/7 与此兼容,正如 quirks 模式所暗示的那样:

IE 6/7 只接受具有自然显示的元素上的值:inline。

【讨论】:

不管怎样,IE7 不支持inline-block Np。 @Scott:我在 W3 上看不到——这就是他们所说的:Note: No versions of Internet Explorer (including IE8) support the property values "inline-table", "run-in", "table", "table-caption", "table-cell", "table-column", "table-column-group", "table-row", or "table-row-group". @henasraf - @Scott 是正确的,我也不能使用它,因为要快速使用它:quirksmode.org/css/display.html 引用:IE 6/7 accepts the value only on elements with a natural display: inline. 啊哈,我想如果应用到span 那么它会起作用。谢谢你的信息,henasraf。【参考方案3】:

使用

.title
  display: inline-block;
  height: 25px;

唯一的技巧是浏览器支持。 Check if your list of supported browsers handles inline-block here.

【讨论】:

【参考方案4】:

假设你不想让它成为块元素,那么你可以尝试:

.title  
    display: inline-block; /* which allows you to set the height/width; but this isn't cross-browser, particularly as regards IE < 7 */
    line-height: 2em; /* or */
    padding-top: 1em;
    padding-bottom: 1em;

但最简单的解决方案是简单地将.title 视为块级元素,并使用适当的标题标签&lt;h1&gt;&lt;h6&gt;

【讨论】:

【参考方案5】:

这是为了让 display:inline-block 在所有浏览器中工作:

奇怪的是,在 IE (6/7) 中,如果您使用 "zoom:1" 触发 hasLayout,然后将显示设置为内联,它的行为就像一个内联块。

.inline-block 
    display: inline-block;
    zoom: 1;
    *display: inline;

【讨论】:

【参考方案6】:

跨度 display: table-cell; height: (your-height + px); vertical-align: middle;

对于像表格单元格(或任何其他元素,就此而言)一样工作的跨度,必须指定高度。我给跨度指定了一个高度,它们工作得很好——但你必须增加高度才能让它们做你想做的事。

【讨论】:

【参考方案7】:

当然,另一种选择是使用 javascript(此处为 Jquery):

$('.box1,.box2').each(function()
    $(this).height($(this).parent().height());
)

【讨论】:

【参考方案8】:

在某些情况下,您可能希望在不更改显示的情况下调整 SPAN 高度:内联。

要解决这个问题,您可以添加一个顶部和/或底部边框属性,根据您的需要设置所需的宽度参数,并使用透明颜色来隐藏该边框:

.myspan 
   border-top : solid 3px transparent;
   border-bottom : solid 3px transparent;

【讨论】:

以上是关于如何为 SPAN 设置高度属性的主要内容,如果未能解决你的问题,请参考以下文章

在 jQuery 中,如何为“最大高度”CSS 属性设置动画?

如何为word文档中的表格设置同样高度的行高?

如何为输入附件视图的高度设置动画?

如何为 UITableView 设置自动高度?

如何为 Xib 设置单元格动态高度的约束...?

如何为 WKInterfaceGroup 设置小于 2 点的固定高度或宽度?