我试图在右侧的搜索输入中放置一个图标字体。
我将图标字体<i class="fa fa-search-plus"></i>
放在我的<button>
标记内,但图标字体显示在我的搜索输入的右边,而不是在右边的输入内。
有人可以看到发生了什么?
我的问题是: http://jsfiddle.net/ritz/ZNb5r/(我尝试将“font-awesome.min.css”链接到jsfiddle,但我认为它不起作用)
我的HTML
<li style="float:right; list-style:none; height:20px;">
<form id="search">
<input name="q" type="text" size="40" placeholder="Search..." />
<button type="submit"><i class="fa fa-search-plus"></i></button>
</form>
</li>
我的css:
#search
{
margin-top:8x;
margin-top:8px;
outline:none ;
border:none ;
}
#search input[type="text"]
{
border: 0 none;
font: 12px 'verdana';
background: brown;
text-indent: 0;
width:110px;
padding: 6px 15px 6px 35px;
-webkit-border-radius: 20px;
-moz-border-radius: 20px;
border-radius: 20px;
text-shadow: 0 2px 2px rgba(0, 0, 0, 0.3);
-webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 3px rgba(0, 0, 0, 0.2) inset;
-moz-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 3px rgba(0, 0, 0, 0.2) inset;
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 3px rgba(0, 0, 0, 0.2) inset;
-webkit-transition: all 0.7s ease 0s;
-moz-transition: all 0.7s ease 0s;
-o-transition: all 0.7s ease 0s;
transition: all 0.7s ease 0s;
}
#search input[type="text"]:focus
{
background: #141d22;
color: #fff;
width: 170px;
outline:none;
color:000;
-webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(0, 0, 0, 0.9) inset;
-moz-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(0, 0, 0, 0.9) inset;
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(0, 0, 0, 0.9) inset;
text-shadow: 0 2px 3px rgba(0, 0, 0, 0.1);
}
button[type="submit"]>i:hover
{
color: #fff;
}
button[type="submit"]>i
{
background:none;
color:#ccc;
font-size:1.5em;
}
答案 0 :(得分:2)
图标不会出现在您的输入中,因为您的按钮不是,也不能嵌套在输入中。
要使按钮显示在输入内,请尝试以下操作:
<style type="text/css">
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
#search input[type="text"] {
padding-right: 20px;
}
#search button[type="submit"] {
margin-left: -20px;
width: 20px;
}
</style>
您可能需要调整边距和填充以使其正常工作。为了消除一些麻烦,我添加了盒子大小。为什么呢?
[默认]测量宽度和高度属性,仅包括内容,但不包括边框,边距或填充。
但是,当您使用border-box时,
width和height属性包括填充和边框,但不包括边距。
(请参阅MDN&#39;关于大小调整文章:https://developer.mozilla.org/en-US/docs/Web/CSS/box-sizing)
答案 1 :(得分:1)
您只是没有正确链接到font-awesome css文件。这是我的 fiddle ,它正常运行。
为了使其工作,我所做的就是将此http://www.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css
添加到外部资源,将其链接到CDN。
答案 2 :(得分:0)
在height
标记中添加一些width
和button
可以解决您的问题。然后将图标设为background-image
。您可能不必在其上添加i
标记,请使用input
标记和background-image
作为图标查看我的Fiddle。