Html 在搜索栏中输入

Html 在搜索栏中输入,html,css,font-awesome,Html,Css,Font Awesome,我正在尝试使用,而不是搜索栏中的背景图像,该图像使用过渡来扩展输入区域。点击此图标,该区域将被打开 我试过了 <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/> <input type="text" name="eingabe" placeholder="Suche"> <i class="fa fa-s

我正在尝试使用,而不是搜索栏中的
背景图像
,该图像使用过渡来扩展输入区域。点击此图标,该区域将被打开

我试过了

<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
<input type="text" name="eingabe" placeholder="Suche">
<i class="fa fa-search" aria-hidden="true"></i>
</input>

您需要转到那里,您将能够找到图标的Unicode。例如,搜索图标为

您可以尝试使用
div
(例如
.search bar
)容器,其中我们可以使用带有CSS定位的搜索图标,搜索输入并将其包装,以将其视为占位符,如:

<div class="search-bar">
  <i class="icon fa fa-search"></i>
  <input class="input-text" type="text" name="eingabe" placeholder="Suche">
</div>
CSS(当活动类被切换时)

请查看下面更新的代码段:

$('.search bar.icon')。在('click',function()上{
$(this.parent().toggleClass('active');
});
。搜索栏{
位置:相对位置;
}
.search-bar.active.输入文本{
最大宽度:80%;
边框:1px实心#ccc;
背景:#eee;
}
.搜索栏.图标{
光标:指针;
位置:绝对位置;
最高:47%;
左:0;
转化:translateY(-50%);
填充:13px 15px 13px 11px;
}
.搜索栏.输入文本{
最大宽度:0;
边界:0;
边框颜色:#ccc;
高度:20px;
填充:8px 6px 8px 35px;
-webkit过渡:所有0.4s易入易出;
过渡:所有0.4缓进缓出;
}

如果您的需求是关于
输入
文本框内的可点击的
字体
图标,请检查下面的代码片段以获得简单的

$('#mybutton')。单击(函数(){
log('单击搜索图标!');
});
.search小部件{
边框:1px实心#8585;
显示:内联块;
高度:35px;
浮动:左;
}
.搜索小部件输入{
-webkit框大小:边框框;
-moz框大小:边框框;
框大小:边框框;
背景色:透明;
边界:0;
高度:35px;
}
.搜索小部件按钮{
背景色:透明;
颜色:#1293D4;
边界:0;
高度:35px;
}

HTML

您需要做的是围绕
输入创建父
div
,并使用
div:before
使用
内容添加图标


CSS

要获取所需的图标,可以参考以下url:

以第一个图标为例,
[;]
要在css中显示此图标,您只需要最后4个带反斜杠的字符,如so
\f26e


Javascript(JQuery)

要在聚焦输入时使图标消失,需要一些Javascript:

$( "input" )
  .focus(function() {
    $( this ).parent().addClass('active');
  })
  .blur(function() {
    $( this ).parent().removeClass('active');
  });
这将向元素添加/删除.active类,当它处于活动状态时,css将覆盖并将图标设置为diplay:none,当模糊恢复正常时

$(“输入”)
.focus(函数(){
$(this.parent().addClass('active');
})
.blur(函数(){
$(this.parent().removeClass('active');
});
div{
位置:相对位置;
}
部门:以前{
内容:“\f2b9”;
字体系列:Fontsome;
字体风格:普通;
字体大小:正常;
位置:绝对位置;
高度:16px;
保证金:自动;
排名:0;
底部:0;
左:10px;
颜色:灰色;
}
输入{
填充:.5rem;
左:2rem;
}
.主动{
}
.活动:之前{
显示:无;
}
.主动输入{
填充:.5rem;
}

只需转到此链接即可
并找到此代码

的可能副本,请提供一个实时URL@flowerflower我已经更新了我的答案,请看一看。我喜欢你的第一种方法。他们是否可以通过点击图标来激活我的转换?(我在你代码的帮助下编辑了上面的问题。)@flowerflower我已经更新了我的解决方案。希望这就是你需要达到的目标。请让我知道这是否有帮助!我希望有一个没有javascript的解决方案,但您的代码实现了我所描述的。如果没有javascript,a可以单击div之外的任何位置来关闭输入字段。使用此javascript,我必须单击两次:第一次打开,第二次设置焦点,在输入字段中写入文本。您也可以在使用javascript单击图标后在输入字段上设置焦点。
.search-bar.active .input-text {
  max-width: 80%;
  border: 1px solid #ccc;
  background: #eee;
}
$( "input" )
  .focus(function() {
    $( this ).parent().addClass('active');
  })
  .blur(function() {
    $( this ).parent().removeClass('active');
  });