表单输入图像转到新行


form input image goes to a new line

当我使用图像作为表单输入提交按钮时,表单图像会转到新行。如何使该图像与表单输入提交按钮保持在同一行?这是我的表格:

<form id="voteform" name="voteform" method="POST">
<input type="hidden" name="id" id="id" value="<?php echo $id;?>">
<INPUT TYPE="image" class="voteform" src="images/vote.png" style="float: left;" name='vote' ALT="Submit Form" onMouseOver="this.src='images/vote_link.png'"
    onMouseOut="this.src='images/vote.png'" width="35" height="20" title="Click to Vote!"></form>

有没有用css之类的东西来解决这个问题?非常感谢。

编辑:我尝试使用display:inline块;在css中,但即使这样也无济于事。。如有任何帮助,我们将不胜感激。

我猜某个父元素有一个您遇到的宽度集。你可以:

  1. 使包裹元素更宽
  2. 缩小图像
  3. 在父元素上设置white-space:nowrap

元素本身中没有任何东西导致它被包裹。

display: inline-block;放入voteform CSS

使用CSS属性:display: inline-block;,它不会转到下一行。如果它应该在不在<form>标记内的元素的行中,则还应该将此属性应用于CSS中的表单元素。

我倾向于在元素上使用背景图像,并使用:hover作为鼠标悬停。我认为这比使用JavaScript进行图像交换更干净。输入将是一个内联块,正如你所期望的那样

<!-- html -->
​<form action="whatever.php" method="post">
<input type="submit" value="huh" id="button" />
</form>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​
/* css */
#button { background-image: url('path/to/my/first/image.png'); }
#button:hover { background-image: url('path/to/my/second/image.png'); }