-
:active伪类用于定义元素被激活时的样式。当用户点击并按住按钮或链接时,触发该状态,常用于改变背景色或文字颜色以增强交互反馈。例如按钮点击时背景变深,松开即恢复;链接可设置点击瞬间变为红色。此效果仅在按下时生效,释放后消失,适合提供瞬时视觉响应。需注意其短暂性,不适用于持久状态切换,应配合JavaScript实现选中等长期效果。在移动端可能响应迟缓,建议结合:hover或触摸事件优化。同时要确保与:focus、:hover等状态协调,避免样式冲突。合理运用:active能有效提升界面响应感和用户体验。
-
用<video>标签插入本地视频需确保路径正确、格式兼容(优先H.264+AAC的MP4)、添加controls属性,并用<source>多格式回退(MP4在前、WebM在后),同时注意file://协议限制、移动端静音要求及浏览器编码支持差异。
-
background-attachment:fixed在现代桌面浏览器中虽能工作,但常因祖先元素的transform/opacity/filter创建新层叠上下文而退化为relative锚定,且iOSSafari等完全不支持,推荐用position:fixed独立div或伪元素模拟以确保兼容性。
-
必须用transform+opacity实现流星动画,因其硬件加速且不触发重排;left/top会导致卡顿,background-position难以精准控制轨迹;需错开delay/duration、限制DOM数量、禁用blur/box-shadow等性能杀手。
-
lang属性必须设在<html>标签上,值须匹配实际内容语言;zh-CN适用于国内项目,zh-Hans适合需分离脚本与地区的国际化产品。
-
JavaScript测试必须覆盖关键路径,单元测试用Jest隔离验证函数/组件,集成测试依场景选Cypress或Vitest,重点保障跨模块数据流与副作用,函数和分支覆盖率比行覆盖率更能暴露风险。
-
服务端缓存JavaScript需合理配置Cache-Control和ETag,结合文件哈希实现版本控制,利用CDN加速并设置适当缓存时间,动态内容则按需使用private缓存或服务端响应缓存,同时监控命中率与请求比例,及时清理失效缓存以优化性能。
-
Record和Tuple是JavaScript新增的深度不可变数据类型,分别用#{}和#[]表示,支持值比较与结构化克隆,适用于状态管理等场景。
-
导航栏下拉菜单不显示的常见原因是JavaScript未初始化或父容器overflow:hidden导致裁剪;需检查JS初始化、data属性、overflow样式、z-index及display/visibility设置。
-
浏览器原生不支持HTML元素直接通过speech属性启用语音识别,必须使用JavaScript的SpeechRecognitionAPI手动实现;input和textarea需绑定onresult事件并将transcript写入value,且受限于HTTPS、权限、浏览器兼容性等硬性条件。
-
HTML中ul和ol嵌套合法但需严格遵循结构:子列表必须作为li的子元素,CSS控制编号与缩进,counter实现多级序号,屏幕阅读器不读CSS生成编号。
-
CSScolumns实现瀑布流轻量易维护,但属按列顺序切割的“伪瀑布流”,适合内容长度相近场景;需用column-count与column-gap控制列数和间距,子项加break-inside:avoid防断行,图片设aspect-ratio或padding-top避重排,响应式推荐column-width结合column-count限制上限。
-
大屏内容显分散太空的本质是布局未适配高分辨率,需阶梯式放大元素尺寸、间距及网格列数;推荐用rem配合根字体动态调整,结合CSSGrid按内容类型设列数,并重点放大标题、压缩图表边距、减小卡片间隙、添加视觉锚点。
-
DOM是浏览器接口而非JavaScript内置部分,根节点为document(nodeType=9),非html;childNodes含所有节点类型,children仅含元素节点;getElementById快但ID易重复,querySelector更安全灵活;innerHTML会重建DOM并丢失事件,textContent仅改文本且防XSS。
-
原生touch事件足以胜任多数滑动场景,如轮播图、横向滚动等;优先使用touchstart/touchmove/touchend,配合touch-action控制拦截权,避免盲目引入手势库。