如何将字体真棒图标转换为输入类型文本

时间:2017-01-10 10:06:50

标签: html css font-awesome

我尝试将字体真棒图标转换为文本输入类型。

但是可以得到想法并且它不起作用。

如下图所示。

enter image description here

.search_location{
    padding: 9px 10px 8px 10px;
    background: #fff;
    color: #777777;
    position: relative;
}
i.icon-map-marker 
{ 
  position: absolute; 
  top: 10px; 
  left: 50px;
}
<p>
 <input type="text" class="search_location" value="Choose Location">
<i class="icon-map-marker"></i>
</p>

2 个答案:

答案 0 :(得分:1)

你可以试试这个:

&#13;
&#13;
    p{
      position: relative;
      font-family: 'FontAwesome';
    }
    p::after{
        position: relative;
        left: -20px;
        content: "\f002";
    }
    input{
      padding-right: 20px;
    }
&#13;
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
<p>
     <input type="text" class="search_location" value="Choose Location">
    </p>
&#13;
&#13;
&#13;

content是你的图标unicode。您还必须指定font-family,因此它使用font awesome(在其图标页​​面上可以找到unicodes)。

https://jsfiddle.net/h6877894/2/

答案 1 :(得分:0)

要放置带position: absolute的元素,我们通常需要在父元素上添加position: relative。从Documentation开始:

  

绝对定位的元素相对于最近定位的祖先(非静态)定位。如果定位的祖先不存在,则使用初始容器。

我建议你使用一点修改后的HTML,如下所示:

<div class="input-holder">
  <input type="text" class="search_location" value="Choose Location">
  <i class="fa fa-map-marker icon"></i>
</div>

在css中进行了一些以下更改:

* {box-sizing: border-box;}

.input-holder {
  position: relative;
  width: 300px;
}

.search_location {
  display: block;
  width: 100%;
}

* {box-sizing: border-box;}
.input-holder {
  position: relative;
  width: 300px;
}
.search_location {
    padding: 9px 10px 8px 10px;
    background: #fff;
    display: block;
    color: #777;
    width: 100%;
}
.icon { 
  position: absolute;
  right: 10px;
  top: 10px;
}
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
<div class="input-holder">
  <input type="text" class="search_location" value="Choose Location">
  <i class="fa fa-map-marker icon"></i>
</div>