如何在按钮上方设置<Span>,可点击(如按钮)?

roc*_*raw 3 html css positioning z-index css-position

看到这个小提琴

我希望"eye"图标一方面显示为现在(在按钮上方,所以我认为z-index不会有帮助),另一方面我希望按钮可以点击它的表面,也意味着在眼睛区域.

另外,有更好的方法来定位眼睛吗?因为一旦我使用不同的文字然后"点击我",我将不得不相应地设置眼睛的绝对位置.有什么办法更好地定义它?

<form action="1.php" method="POST" target="_blank">
    <input type="submit" class="button" value="Click Me"><span class="fa fa-eye fa-lg foo" "></span>
</form>

.foo{
     color:red;
    font-size:1.7em;
    position: absolute;
    height: 11px;
    top: 18px;
    left: 15px;
    pointer-events: none;
}

.button {
    display: inline-block;
    zoom: 1;
    line-height: normal;
    white-space: nowrap;
    vertical-align: baseline;
    text-align: center;
    cursor: pointer;
    -webkit-user-drag: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    font-family: inherit;
    font-family: arial;
    font-size: 17px;
    padding: .5em .9em .5em 2em;
    text-decoration: none;
    border-radius: 4px;
    text-shadow: 0 1px 1px rgba(0, 0, 0, .2);
}
Run Code Online (Sandbox Code Playgroud)

Jos*_*ier 10

在使其可点击方面,您可以添加pointer-events: none到元素.这实际上允许您单击元素.

更新的示例

.foo {
    pointer-events: none;
    color: red;
    /* Other styles.. */
}
Run Code Online (Sandbox Code Playgroud)

可以在此处找到对此属性的支持.


另一个选择是将两个元素包装在一个label.单击标签时,将input触发元素,从而解决问题.

这里的例子

<label>
    <span class="fa fa-eye fa-lg foo"></span>
    <input type="submit" class="button" value="Click Me"/>
</label>
Run Code Online (Sandbox Code Playgroud)