在跨度中显示图像而不将其转换为块级元素

Posted

技术标签:

【中文标题】在跨度中显示图像而不将其转换为块级元素【英文标题】:Display an image in span without converting it to a block level element 【发布时间】:2011-07-01 22:36:51 【问题描述】:

我在这里有点困惑。我有一个 txtbox,在 txtbox 的右侧,我想插入一个帮助图标。我已将其插入到跨度中。问题是我不想让这个跨度成为一个块,因为它会下降。有没有其他方法可以在不将其转换为块级元素的情况下显示此图像?

代码在这里:

<input name="firm" type="text" id="firm" size="20" /><span id="helpico"></span>

CSS:

#helpico background:url(images/question.png) left top; width:16px; height:16px;

【问题讨论】:

我也不想浮动它。对此感到抱歉。 为什么不呢?这是最好的方法! 做一件事。为您的输入标签设置display: inline 【参考方案1】:

将这两个元素包装在一个 div 中,将 span 设为一个块,并为 input 和 span 标签提供 float: left 的 CSS 样式。

<div id="wrap">
    <input name="firm" type="text" id="firm" size="20" />
    <span id="helpico"></span>
</div>

还有 CSS

#helpico  
    background:url(images/question.png) left top; 
    width:16px; 
    height:16px;
    display: block;
    float: left;


#firm 
    float: left;

【讨论】:

【参考方案2】:

你可以使用这个 CSS:

#firm 

   float: left;

#helpico
 
   background:url(images/question.png) left top; 
   width:16px; 
   height:16px;
   display: block;
   float: left;

您必须使用显示块来启用宽度和高度并接受其他样式。但是为了解决您“下降”的问题,您可以将两个元素都设置为向左浮动,并且它们将保持内联在父元素中。

请注意,如果图标与内容相关,则应将其包含在 &lt;img&gt; 标记和 alt 属性中。


看到不想用floats OR display block后,只剩下一种方式了,用display: inline-block;

Example for you here。 :)

【讨论】:

链接失效,请修复【参考方案3】:

你不能为图片使用 img 标签吗?这将显示内联。

通常,img 不会在相当高的位置显示您的图标(它会太高)。为此使用垂直对齐(通常 text-bottom 会起作用)或使用 position:relative 和 top:3px 等 img。

<input name="firm" type="text" id="firm" size="20" /><img id="helpico" src="images/question.png">

css

#helpico  vertical-align:text-bottom; 

【讨论】:

以上是关于在跨度中显示图像而不将其转换为块级元素的主要内容,如果未能解决你的问题,请参考以下文章

水平垂直居中方法

水平垂直居中方法

探究行内元素和块级元素

学习笔记

css块级显示怎么设置

span 元素无法设置宽度问题