Bootstrap 4 中输入框中的图标

31

我正在寻找一个解决方案,可以在Bootstrap 4中创建和输入像这样的内容:

所需目标

我正在使用Font Awesome,以下是我使用的代码:

<div class="input-group">
    <label class="control-label">Username</label>
    <input type="text" class="form-control" placeholder="Username" />
    <span>
        <i class="fa fa-user-circle-o" aria-hidden="true"></i>
    </span>
</div>

但我无法从输入中获取图像,请帮忙。 https://jsfiddle.net/5db2ho62/


1
创建一个 Fiddle。我可以编辑它。 - Syam Pillai
你能描述一下你想要实现什么吗?你提供的图片无法加载(而且,为了后代着想,你不应该依赖 SO 中的图片)。 - Shtut
@SyamPillai 现在SO有内置代码片段了;在这种情况下没有理由链接到站外。 - MTCoster
span标签应该有input-group-addon类。然后使用CSS覆盖样式。确保span行在输入行上方。 - node_modules
你能提供你的自定义CSS添加吗?它们可能会干扰Bootstrap。 - MTCoster
https://jsfiddle.net/5db2ho62/ - Mohamed Sherif Noureldin
12个回答

-1

将图标放在文本区域内并不是一个好的解决方案。最好的方法是创建一个简单的解决方案。因此,首先我们将创建一个带有输入字段前面的图标的表单,如下所示:

input {
  border: none;
  background-color: white;
}

input:focus,
select:focus,
textarea:focus,
button:focus {
  outline: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" rel="stylesheet"/>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css">

<div class="input-group">
    <i class="fa fa-user"></i>
    <input type="text" class="form-control" placeholder="Please enter your name" >
</div>

查看jsfiddle

接下来,我们将进行一些样式更改,使其看起来像一个input字段:

input {
  border: none;
  background-color: transparent;
}

.fa-user {
  padding: 10px;
}

.input-group {
  border: 1px solid black;
  width: 250px;
}

input:focus,
select:focus,
textarea:focus,
button:focus {
  outline: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" rel="stylesheet"/>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css">


<div class="input-group">
    <i class="fa fa-user"></i>
    <input type="text" class="form-control" placeholder="Please enter your name" >
</div>

请查看jsfiddle

希望这可以帮助你!


1
图标在哪里? - Mohammed Noureldin

-1

这是最简单的方法

<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js " integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo " crossorigin="anonymous "></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js " integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49 " crossorigin="anonymous "></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.2/js/bootstrap.min.js " integrity="sha384-o+RDsa0aLu++PJvFqy8fFScvbHFLtbvScb8AjopnFD+iEQ7wo/CG0xlczd+2O/em " crossorigin="anonymous "></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.21.0/moment.min.js" type="text/javascript"></script>
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.2/css/bootstrap.min.css" integrity="sha384-Smlep5jCw/wG7hdkwQ/Z5nLIefveQRIY9nfy6xoR1uRYBtpZgI6339F5dgvm/e9B" crossorigin="anonymous">
<!--Font Awesome (added because you use icons in your prepend/append)-->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">

<body>
  <div class="col-sm-4 input-group">
    <div class="input-group-prepend">
      <div class="input-group-text" style="border-right:none;background:transparent">
        <i class="fa fa-user"></i>
      </div>
    </div>
    <input type="text" class="form-control" style="border-left:none">
  </div>
</body>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接