试图在我的按钮内放置一个图标字体

时间:2014-03-31 00:48:42

标签: html css css3

我试图在右侧的搜索输入中放置一个图标字体。

我将图标字体<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; 

            }

3 个答案:

答案 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标记中添加一些widthbutton可以解决您的问题。然后将图标设为background-image。您可能不必在其上添加i标记,请使用input标记和background-image作为图标查看我的Fiddle