:disabled
:disabled CSS 伪类表示任何被禁用的元素。如果一个元素无法被激活(选中、点击、输入等)或无法获取焦点,则该元素处于禁用状态。该元素还具有启用状态,在该状态下可以被激活或获取焦点。
试一试
label {
display: block;
margin-top: 1em;
}
*:disabled {
background-color: dimgrey;
color: linen;
opacity: 1;
}
<form>
<label for="name">Name:</label>
<input id="name" name="name" type="text" />
<label for="emp">Employed:</label>
<select id="emp" name="emp" disabled>
<option>No</option>
<option>Yes</option>
</select>
<label for="empDate">Employment Date:</label>
<input id="empDate" name="empDate" type="date" disabled />
<label for="resume">Resume:</label>
<input id="resume" name="resume" type="file" />
</form>
语法
css
:disabled {
/* ... */
}
示例
此示例展示了一个基本的配送表单。它使用 JavaScript 的 change 事件,允许用户启用/禁用账单字段。
HTML
html
<form action="#">
<fieldset id="shipping">
<legend>Shipping address</legend>
<input type="text" placeholder="Name" />
<input type="text" placeholder="Address" />
<input type="text" placeholder="Zip Code" />
</fieldset>
<br />
<fieldset id="billing">
<legend>Billing address</legend>
<label for="billing-checkbox">Same as shipping address:</label>
<input type="checkbox" id="billing-checkbox" checked />
<br />
<input type="text" placeholder="Name" disabled />
<input type="text" placeholder="Address" disabled />
<input type="text" placeholder="Zip Code" disabled />
</fieldset>
</form>
CSS
css
input[type="text"]:disabled {
background: #cccccc;
}
JavaScript
点击复选框时切换禁用的输入字段
js
const checkbox = document.querySelector("#billing-checkbox");
const billingItems = document.querySelectorAll('#billing input[type="text"]');
checkbox.addEventListener("change", () => {
billingItems.forEach((item) => {
item.disabled = !item.disabled;
});
});
结果
勾选/取消勾选复选框可更改账单字段的样式。
规范
| 规范 |
|---|
| HTML # selector-disabled |
| 选择器 Level 4 # disabled-pseudo |
浏览器兼容性
加载中…