在文本框中显示搜索图片

问题描述:

您可能以前看过很多漂亮的搜索框(如jQuery API中的那些框),其中有一个可点击的搜索图标显示在文本框上。我如何在语义上实现这种效果?在文本框中显示搜索图片

我在一些自定义的Google搜索文本框中看到它在文本框中使用背景图像,然后它接收焦点并删除图像。此外,StackOverflow中的搜索框似乎也使用了一个小图标的背景图片。我知道如何做到这一点,这很容易,但这不是我想要的效果。我希望有一个可点击的图标,在点击时悬停并提交表单。

使用一些与此类似的HTML(其中......表示放入表单所需的适当属性):

<form id="search" ...> 
    <input type="text" ...> 
    <button></button> 
</form> 

然后用CSS,在form元素上设置position: relative,在按钮上设置position: absolute; right: 0。在按钮上设置背景图像并使用text-indent: -9999em将按钮的文本隐藏在屏幕外。

如果您想要更紧密地模拟jQuery的解决方案,我建议您安装Firebug for Firefox并自行检查元素的HTML和CSS。

+0

我不需要使用''或''作为表单提交元素吗? – 2010-01-27 16:13:22

+0

如果不是,它看起来像这个解决方案将工作得很好!不过,我可能需要一个负值。 – 2010-01-27 16:14:16

+0

我想,使用图像输入类型会更好。您可能不需要文本缩进然后(我不认为图像按钮具有文本值)。 – DisgruntledGoat 2010-01-28 22:26:04

将链接标签绝对放置在文本框的右侧,并使用透明的PNG背景进行设计。将代码附加到链接的点击事件中以查找并提交表单。如果你正在使用像jQuery这样的第三方Javascript库,那么这很平凡。

+0

不,这是不可接受的,因为它不与禁用JavaScript工作。我需要一个**语义**解决方案。谢谢你的答案。 – 2010-01-27 15:14:13

+0

然后用一个按钮替换链接标记,并再次使用透明PNG设置背景。只需要CSS,不需要JS。 – meagar 2010-01-27 15:35:11

另一种方式来完成,这是放置一个相对定位提交的搜索输入(用搜索输入框填充顶部的按钮,以保持文本从搜索图像下运行。然后给你的按钮悬停状态,此时您都是很好的去。

+0

如何将提交按钮放在搜索输入的顶部?我确实理解你的观点是否有正确的填充。这次真是万分感谢。 – 2010-01-27 15:15:10

+1

@Josh将按钮和文本框放在一个容器中,并将它们放置为正常位置(position:[relative | absolute]; left:XX; top:YY),并为该按钮指定比文本字段更高的z-index。 – meagar 2010-01-27 15:36:32

+0

@Josh - meagar是正确的。你想要一个代码示例吗? – 2010-01-27 16:56:25

您可以皮肤提交使用CSS的形式和位置的按钮。这是一个有点棘手,你得到它的工作在所有的浏览器,但它有可能..

此链接可能对您有所帮助。它有完整的代码http://www.cssportal.com/form-elements/text-box.htm

DEMO

HTML

<form id="search"> 
    <input type="text" class="text"/> 
    <input type="button" class="possition"/>  
</form> 

CSS

body{ 
    position:relative; 
} 
.possition 
{ 
    position:relative; 
    background:url('http://s9.postimg.org/6upsdsf97/Red_Button1.gif') no-repeat center center; 
    width:20px; 
    height:20px; 
    border:none; 
    margin-left:-25px; 
    top:3px; 
    z-index:999; 
} 
.text 
{ 
    padding-right:22px; 
} 
+0

一个有用的网站,但它不符合原始海报的要求,即有一个“可点击的搜索图标”。 – Dan 2011-11-18 12:48:42

+0

@丹现在可以吗? – 2013-09-03 08:37:51

+0

是啊,看起来更好 – Dan 2013-09-04 12:12:38