# CSS样式中focus有什么用 ## 一、什么是:focus伪类 `:focus`是CSS中的一个**伪类选择器**,用于匹配当前获得焦点的表单元素或可交互元素。当用户通过鼠标点击、键盘Tab键导航等方式激活某个元素时,该元素即处于`focus`状态。 ```css input:focus { border-color: blue; box-shadow: 0 0 5px rgba(81, 203, 238, 1); }
符合WCAG 2.1标准,确保: - 焦点可见性(2.4.7) - 键盘可操作性(2.1.1)
/* 输入框聚焦样式 */ input:focus, textarea:focus { outline: 2px solid #4CAF50; background-color: #f8f8f8; } /* 按钮聚焦样式 */ button:focus { transform: scale(1.05); box-shadow: 0 0 0 3px rgba(0,123,255,.25); }
/* 浮动标签效果 */ .input-group:focus-within label { transform: translateY(-120%) scale(0.9); color: #0066cc; } /* 平滑过渡动画 */ input:focus { transition: all 0.3s ease-out; }
错误做法:
/* 禁用默认焦点轮廓(违反无障碍原则) */ :focus { outline: none; }
正确替代方案:
:focus { outline: 2px solid currentColor; outline-offset: 2px; }
/* 不同状态组合 */ button:hover:focus { background-color: darken(primary-color, 15%); } /* 验证状态 */ input:focus:invalid { border-color: #ff4444; }
:focus-visible
:区分鼠标和键盘焦点:focus-within
:父容器焦点状态/* 仅对键盘操作显示焦点样式 */ button:focus-visible { outline: 3px dashed #000; }
伪类 | Chrome | Firefox | Safari | Edge |
---|---|---|---|---|
:focus | 1.0+ | 1.0+ | 1.0+ | 12+ |
:focus-visible | 86+ | 85+ | 15.4+ | 86+ |
:focus-within | 60+ | 52+ | 10.1+ | 79+ |
:focus
伪类是构建可访问、用户友好界面的关键工具。合理使用可以: 1. 显著提升表单操作体验 2. 满足无障碍设计要求 3. 创建精致的交互效果 4. 适配多种输入方式(鼠标/键盘/触摸)
开发时应始终遵循”焦点可见”原则,结合现代CSS选择器创建更智能的焦点管理方案。 “`
注:本文约750字,采用Markdown格式编写,包含代码示例、兼容性表格等技术内容,符合技术文档规范。可根据需要调整具体示例或补充更多使用场景。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。