没有引导:
我们稍后会介绍 Bootstrap,但这里有一些基本的 CSS 概念,以便您自己完成。作为beard of prey points out,您可以通过将图标绝对定位在输入元素内部来使用CSS 做到这一点。然后在任一侧添加填充,使文本不与图标重叠。
所以对于下面的 HTML:
<div class="inner-addon left-addon">
<i class="glyphicon glyphicon-user"></i>
<input type="text" class="form-control" />
</div>
您可以使用以下 CSS 来左右对齐字形:
/* enable absolute positioning */
.inner-addon {
position: relative;
}
/* style icon */
.inner-addon .glyphicon {
position: absolute;
padding: 10px;
pointer-events: none;
}
/* align icon */
.left-addon .glyphicon { left: 0px;}
.right-addon .glyphicon { right: 0px;}
/* add padding */
.left-addon input { padding-left: 30px; }
.right-addon input { padding-right: 30px; }
注意:这假定您使用的是glyphicons,但同样适用于font-awesome。
对于 FA,只需将 .glyphicon 替换为 .fa
使用引导程序:
作为buffer points out,这可以通过使用Validation States with Optional Icons 在Bootstrap 中本地完成。这是通过将.has-feedback 类赋予.form-group 元素和.form-control-feedback 类赋予图标来完成的。
最简单的例子是这样的:
<div class="form-group has-feedback">
<label class="control-label">Username</label>
<input type="text" class="form-control" placeholder="Username" />
<i class="glyphicon glyphicon-user form-control-feedback"></i>
</div>
优点:
- 包括对不同表单类型(基本、水平、内联)的支持
- 包括对不同控件大小(默认、小、大)的支持
缺点:
为了克服这些缺点,我将这个pull-request 与支持左对齐图标的更改放在一起。由于这是一个比较大的变化,它已经被推迟到未来的版本中,但如果您今天需要这些功能,这里有一个简单的实施指南:
只需包含 these form changes in css(也通过底部的隐藏堆栈 sn-p 内联)
*LESS:或者,如果您是 building via less,这里是 @ 987654331@
然后,您所要做的就是在具有 .has-feedback 类的任何组中包含类 .has-feedback-left,以便使图标左对齐。
由于在不同的表单类型、不同的控件大小、不同的图标集和不同的标签可见性上有很多可能的 html 配置,我创建了一个测试页面,该页面显示每个排列的正确 HTML 集以及现场演示.
P.S. frizi's suggestion 的添加pointer-events: none; 已经是added to bootstrap
没有找到您要找的东西?试试这些类似的问题:
为左对齐反馈图标添加 CSS
.has-feedback .form-control {
padding-right: 34px;
}
.has-feedback .form-control.input-sm,
.has-feedback.form-group-sm .form-control {
padding-right: 30px;
}
.has-feedback .form-control.input-lg,
.has-feedback.form-group-lg .form-control {
padding-right: 46px;
}
.has-feedback-left .form-control {
padding-right: 12px;
padding-left: 34px;
}
.has-feedback-left .form-control.input-sm,
.has-feedback-left.form-group-sm .form-control {
padding-left: 30px;
}
.has-feedback-left .form-control.input-lg,
.has-feedback-left.form-group-lg .form-control {
padding-left: 46px;
}
.has-feedback-left .form-control-feedback {
left: 0;
}
.form-control-feedback {
line-height: 34px !important;
}
.input-sm + .form-control-feedback,
.form-horizontal .form-group-sm .form-control-feedback {
width: 30px;
height: 30px;
line-height: 30px !important;
}
.input-lg + .form-control-feedback,
.form-horizontal .form-group-lg .form-control-feedback {
width: 46px;
height: 46px;
line-height: 46px !important;
}
.has-feedback label.sr-only ~ .form-control-feedback,
.has-feedback label.sr-only ~ div .form-control-feedback {
top: 0;
}
@media (min-width: 768px) {
.form-inline .inline-feedback {
position: relative;
display: inline-block;
}
.form-inline .has-feedback .form-control-feedback {
top: 0;
}
}
.form-horizontal .has-feedback-left .form-control-feedback {
left: 15px;
}