How do I add a Font Awesome icon to input field?

前端 未结 8 1655
野性不改
野性不改 2020-11-28 01:36

How do I use the search icon included in Font Awesome for input? I have a search feature on my site (based on PHPmotion), that I want to use for the search.

Here\'s

相关标签:
8条回答
  • 2020-11-28 02:00

    You can use another tag instead of input and apply FontAwesome the normal way.

    instead of your input with type image you can use this:

    <i class="icon-search icon-2x"></i>
    

    quick CSS:

    .icon-search {
        color:white;
        background-color:black;
    }
    

    Here is a quick fiddle: DEMO

    You can style it a little better and add event functionality, to the i object, which you can do by using a <button type="submit"> object instead of i, or with javascript.

    The button sollution would be something like this:

    <button type="submit" class="icon-search icon-large"></button>
    

    And the CSS:

    .icon-search {
        height:32px;
        width:32px;
        border: none;
        cursor: pointer;
        color:white;
        background-color:black;
        position:relative;
    }
    

    here is my fiddle updated with the button instead of i: DEMO


    Update: Using FontAwesome on any tag

    The problem with FontAwsome is that its stylesheet uses :before pseudo-elements to add the icons to an element - and pseudo elements don't work/are not allowed on input elements. This is why using FontAwesome the normal way will not work with input.

    But there is a solution - you can use FontAwesome as a regular font like so:

    CSS:

    input[type="submit"] {
        font-family: FontAwesome;
    }
    

    HTML:

    <input type="submit" class="search" value="&#xf002;" />
    

    The glyphs can be passed as values of the value attribute. The ascii codes for the individual letters/icons can be found in the FontAwesome css file, you just need to change them into a HTML ascii number like \f002 to &#xf002; and it should work.

    Link to the FontAwesome ascii code (cheatsheet): fortawesome.github.io/Font-Awesome/cheatsheet

    The size of the icons can be easily adjusted via font-size.

    See the above example using an input element in a jsfidde:

    DEMO


    Update: FontAwesome 5

    With FontAwesome version 5 the CSS required for this solution has changed - the font family name has changed and the font weight must be specified:

    input[type="submit"] {
        font-family: "Font Awesome 5 Free"; // for the open access version
        font-size: 1.3333333333333333em;
        font-weight: 900;
    }
    

    See @WillFastie 's comment with link to updated fiddle bellow. Thanks!

    0 讨论(0)
  • 2020-11-28 02:04

    Here is a solution that works with simple CSS and standard font awesome syntax, no need for unicode values, etc.

    1. Create an <input> tag followed by a standard <i> tag with the icon you need.

    2. Use relative positioning together with a higher layer order (z-index) and move the icon over and on top of the input field.

    3. (Optional) You can make the icon active, to perhaps submit the data, via standard JS.

    See the three code snippets below for the HTML / CSS / JS.

    Or the same in JSFiddle here: Example: http://jsfiddle.net/ethanpil/ws1g27y3/

    $('#filtersubmit').click(function() {
      alert('Searching for ' + $('#filter').val());
    });
    #filtersubmit {
      position: relative;
      z-index: 1;
      left: -25px;
      top: 1px;
      color: #7B7B7B;
      cursor: pointer;
      width: 0;
    }
    <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet" />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    
    <input id="filter" type="text" placeholder="Search" />
    <i id="filtersubmit" class="fa fa-search"></i>

    0 讨论(0)
  • 2020-11-28 02:04
    .fa-file-o {
        position: absolute;
        left: 50px;
        top: 15px;
        color: #ffffff
    }
    
    <div>
     <span class="fa fa-file-o"></span>
     <input type="button" name="" value="IMPORT FILE"/>
    </div>
    
    0 讨论(0)
  • 2020-11-28 02:10

    Change your input to a button element and you can use the Font Awesome classes on it. The alignment of the glyph isn't great in the demo, but you get the idea:

    http://tinker.io/802b6/1

    <div id="search-bar">
      <form method="get" action="search.php" autocomplete="off" name="form_search">
        <input type="hidden" name="type" value="videos" />
            <input autocomplete="on" id="keyword" name="keyword" value="Search Videos" onclick="clickclear(this,
            'Search Videos')" onblur="clickrecall(this,'Search Videos')" style="font-family: verdana; font-weight:bold;
            font-size: 10pt; height: 28px; width:186px; color: #000000; padding-left: 2px; border: 1px solid black; background-color:
            #ffffff" /><!--
            --><button class="icon-search">Search</button>
        <div id="searchBoxSuggestions"></div>
        </form>
    </div>
    
    #search-bar .icon-search {
        width: 30px;
        height: 30px;
        background: black;
        color: white;
        border: none;
        overflow: hidden;
        vertical-align: middle;
        padding: 0;
    }
    
    #search-bar .icon-search:before {
        display: inline-block;
        width: 30px;
        height: 30px;
    }
    

    The advantage here is that the form is still fully functional without having to add event handlers for elements that aren't buttons but look like one.

    0 讨论(0)
  • 2020-11-28 02:13

    For those, who are wondering how to get FontAwesome icons to drupal input, you have to decode_entities first like so:

    $form['submit'] = array(
    '#type' => 'submit',
    '#value' => decode_entities('&#xf014;'), // code for FontAwesome trash icon
    // etc.
    );
    
    0 讨论(0)
  • 2020-11-28 02:13

    simple way for new font awesome

      <div class="input-group">
                        <input type="text" class="form-control" placeholder="Search" name="txtSearch"  >
                        <div class="input-group-btn">
                            <button class="btn btn-default" type="submit"><i class="fas fa-search"></i></button>
                        </div>
                    </div>
    
    0 讨论(0)
提交回复
热议问题