就像html 标签disable
上的属性一样。<input>
我对禁用的效果不感兴趣,例如不包含在表单的 POST 中,并且样式当然可以在 css 中重做,如果它看起来应该只是禁用的话。(而且我的输入字段是一个提交按钮,因此从 POST 禁用是无关紧要的。)
我只需要它是不可点击的并且看起来被禁用。
在没有在 html 标签上添加属性的情况下,这在纯 css 中是否可行?
不,您不能仅通过 CSS 禁用它的功能(因为它只是用于样式目的),尽管您可以使用 CSS 使其像禁用按钮一样显示为灰色。要使其在功能方面被禁用,您将不得不求助于JavaScript。
使用 CSS,您所能做的就是通过 CSS 将按钮设置为灰色,然后在其上创建另一个元素,使其z-index
更高、设置position
和opactiy
完全透明。这意味着您的实际元素已启用,但由于其上的元素具有完全透明性,因此无法单击它。
另一种解决方案是只添加pointer-events: none;
到 dom 元素的样式,应该适用于大多数浏览器。
您可以通过以下方式进行...
.input-disable {
pointer-events: none;
border: 1px solid grey;
background-color: lightgrey;
}
input[type=text] {
height: 30px;
width: 180px;
padding: 10px;
}
<input type="text" value="Normal field">
<input type="text" class="input-disable" tabindex="-1" value="disabled field">
您可以添加以下 CSS 将禁用任何指针事件。这也将禁用悬停、聚焦等。
.style {
pointer-events: none;
}
你可以让它看起来像被禁用,但你不能阻止它只用 CSS 是可点击的。一个可怕的 hack 将覆盖一个 div 或其他一些元素,然后该按钮将无法点击。