如何将图标和输入文本放在同一行?

时间:2010-11-30 12:18:06

标签: html css

我想在左侧放置一个图标,右侧的输入类型文本占据所有剩余空间。

----------------------------------------------------
| [ico]  ----------------------------------------  |
|        |   input type="text"                  |  |
|        ----------------------------------------  |
----------------------------------------------------

如果我同时设置display: inline-block并将输入的宽度设置为100% ,则跳转,因为100%不考虑space - icosize ......

我想将输入扩展到剩余的可用空间我不关心垂直对齐)。有没有办法在不使用表的情况下实现此行为?

  

An example of the problem on jsFiddle.

6 个答案:

答案 0 :(得分:5)

ianaré的版本在IE6中有点复杂:

http://jsfiddle.net/sUYBS/23/

答案 1 :(得分:2)

float:left;表示图标。 请参阅http://jsfiddle.net/sUYBS/11/

答案 2 :(得分:2)

试试这个......

<div style="display: table;">
<div style="display: table-row; width:100%;">
    <div style="display: table-cell;">
    <img src="img.png" width="16" height="11" alt="img"/>
    </div>
    <div style="display: table-cell; width:100%;">
    <input type="text" style="width:100%;"/>
    </div>
</div>
</div>

答案 3 :(得分:0)

我认为答案是vertical-align: middle,但请参阅Understanding vertical-align, or "How (Not) To Vertically Center Content"

答案 4 :(得分:0)

尝试display: table-cell

答案 5 :(得分:-1)

您是否尝试在图标中使用align =“absmiddle”?

<img src="img.jpg" align="absmiddle">