允许点击图标输入
这个小提琴已经在 IE9+(应该工作得更低)、FF 和 Chrome 中进行了测试。与z-index
此处其他一些答案的解决方案不同,它允许单击图标以进行输入。它的工作原理实际上非常简单。
.input-prepend {
border-radius: 4px;
background: white;
}
.input-prepend .add-on {
margin-right: -28px;
}
.input-prepend input {
border-radius: 4px;
background: none;
padding-left: 34px; /*28 for icon, 6 for normal padding*/
}
解释
图标的负右边距会导致input
重叠。输入已经被border-radius
再次给出,但它background
被设置为none
以便可以看到图标。添加了额外的右侧填充input
以容纳图标。最后,还给出了包装器border-radius
并将最终background
颜色应用于包装器,以便在input
其他一些背景色容器(如小提琴所示)上仍然具有白色背景。
更新:如果你不想要图标上的嵌入阴影
这是我能找到的最适合跨浏览器的方式来隐藏您在评论中提到的嵌入阴影。一些浏览器不pointer-events
支持,因此图标区域的一小部分不会被识别为触发输入。
.input-prepend:before,
.input-prepend:after{
content: '';
display: block;
top: 1px;
left: 1px;
width: 24px;
height: 4px;
border-radius: 4px 0 0 0;
border: 2px solid #eee; /* match icon background */
border-width: 2px 0px 0px 2px;
position: absolute;
z-index: 2;
pointer-events: none; /* for those browsers that honor */
}
.input-prepend:before {
width: 4px;
height: 24px;
top: 4px;
border-radius: 0 0 0 4px;
}