CSS启用状态样式设置技巧
时间:2025-12-24 10:39:37 308浏览 收藏
亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《CSS中使用:enabled伪类可以选中处于启用状态的表单元素,如输入框、下拉菜单等。这个伪类适用于那些没有被禁用(即未设置disabled属性)的元素。示例代码:/* 选中所有可编辑的表单元素 */ input:enabled, textarea:enabled, select:enabled { border: 1px solid #000; }说明::enabled 选择器用于匹配所有启用状态的表单元素。它常用于样式化用户可交互的元素,比如在表单验证或动态状态变化时提供视觉反馈。与之对应的还有 :disabled,用于选择被禁用的元素。实际应用场景:你可能想在用户可以输入时给输入框添加边框颜色,或者在不可编辑时隐藏某些按钮。input:enabled { background-color: #fff; } input:disabled { background-color: #eee; }注意事项::enabled 仅适用于表单元素(如 input, textarea, select, button 等)。如果你需要更细粒度的控制,可以结合 JavaScript 来动态操作元素状态。如果你有具体的需求,比如只选中特定类型的可编辑元素,也可以进一步细化选择器。》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下,希望所有认真读完的童鞋们,都有实质性的提高。
真正可编辑的元素包括:input(除type="hidden"等不可输入类型外)、textarea、contenteditable="true"的元素;推荐用:read-write伪类或class="editable"方案实现样式控制。

要只选中可编辑的表单元素,用 :enabled 并不准确——它匹配的是“启用状态”的元素(如 input、select、textarea 等未被 disabled 的控件),但不等于“可编辑”。比如 input[type="radio"] 或 input[type="checkbox"] 是 :enabled 的,却不能输入文本。
真正可编辑的元素有哪些?
通常指用户能直接输入或修改内容的元素,主要包括:
input(除type="hidden"、"radio"、"checkbox"、"button"、"submit"、"reset"、"image"外)textarea- 带
contenteditable="true"的任意元素(如div、span)
纯 CSS 方案:组合伪类与属性选择器
CSS 本身无法判断 contenteditable 的布尔值真假,但可以匹配该属性是否存在:
input:not([type="hidden"]):not([type="radio"]):not([type="checkbox"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="image"]):enabledtextarea:enabled[contenteditable="true"](注意:也匹配contenteditable="TRUE"等大小写变体,但标准写法是小写;若需兼容,建议统一设为"true")
可合并为:
input:enabled:not([type="hidden"]):not([type="radio"]):not([type="checkbox"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="image"]),<br>textarea:enabled,<br>[contenteditable="true"] {<br> /* 样式规则 */<br>}更可靠的做法:加 class 标识
CSS 逻辑复杂易出错,且无法动态响应 contenteditable 值变化(如 JS 切换 "true"/"false")。推荐在 HTML 中主动标记可编辑区域:
- 给所有预期可编辑的元素添加
class="editable" - 用
.editable统一控制样式,清晰、可控、可维护 - JS 动态切换时,同步增删该 class,避免样式失效
补充说明::read-write 伪类
CSS 提供了 :read-write 伪类,理论上专用于匹配“可读写”的元素(即用户可编辑的内容),它会匹配:
- 启用的
input和textarea(排除只读/禁用/不可编辑类型) - 带有
contenteditable="true"的元素 - 非
readonly且非disabled的表单控件
写法简洁:
:read-write {<br> /* 可编辑元素的样式 */<br>}注意::read-write 在现代浏览器(Chrome/Firefox/Safari/Edge)中支持良好,但 IE 完全不支持。如需兼容 IE,应回退到属性选择器组合方案或使用 class 控制。
今天关于《CSS启用状态样式设置技巧》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!
-
502 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
273 收藏
-
384 收藏
-
333 收藏
-
254 收藏
-
295 收藏
-
429 收藏
-
267 收藏
-
461 收藏
-
126 收藏
-
176 收藏
-
231 收藏
-
420 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 485次学习