-
HTML表格默认无边框因浏览器设border为0且border-collapse为separate;加border="1"已过时,应使用CSS:table{border-collapse:collapse}配合td,th{border:1pxsolid#ccc}。
-
闭包是函数与其词法环境的组合,产生于函数嵌套、内部函数引用外部变量且被传出作用域时;它延长变量生命周期,既可实现私有状态,也可能因持有大对象或未清理引用导致内存泄漏。
-
本文详解如何通过优化JavaScript滚动监听逻辑,精准控制粘性头部(stickyheader)的显隐行为:向下滚动时隐藏(.hideHeader),向上滚动时显示(.showHeader),并确保滚动至页面顶部时自动清除所有状态类,回归原始样式。
-
伪元素默认不拦截点击事件,但因属于独立渲染图层,若覆盖内容且未设pointer-events:none,便会阻挡点击;解决方法是为其显式设置pointer-events:none,注意IE11不支持需降级处理。
-
CSSModules通过构建时自动重命名类名实现样式作用域隔离,避免全局污染;需命名为xxx.module.css并用styles.xxx引用,不可字符串拼接,配合命名空间和全局样式分离可增强隔离性。
-
grid-area最直观高效,通过命名区域实现脱离DOM顺序的精准定位;grid-row/column适合轻量线号定位但需防越界;order在Grid中仅对未显式定位项生效;响应式推荐改grid-template-areas配合固定grid-area。
-
可通过JavaScript动态修改HTML元素属性:一、setAttribute设置任意属性;二、直接赋值标准属性字段;三、dataset操作data-自定义属性;四、className/classList管理class;五、style修改内联样式。
-
Webpack迁移Vite是构建理念切换:从“打包优先”转向“原生ESM优先”,需适配开发服务器、重写vite.config.ts、替换loader为原生支持、调整环境变量与代理配置,并利用其按需编译和HMR优势。
-
宏任务和微任务是JavaScript事件循环中两类任务,宏任务(如setTimeout)执行完后必须清空全部微任务队列(如Promise.then)才执行下一个宏任务,这是理解async/await、setTimeout(0)等执行顺序的关键。
-
visibility:hidden保留布局、禁用交互且不被读屏软件识别,opacity:0保留布局和交互、支持过渡动画但需配合pointer-events:none和aria-hidden才安全。
-
纯CSS手风琴核心是checkbox:checked配合兄弟选择器控制max-height过渡动画,input须与面板同级且在前、display:none,label[for]关联触发,用max-height而非height/display实现可过渡的折叠效果。
-
必须对URL中非ASCII字符和保留字符(如空格、中文、#、?、&等)在路径和查询参数中手动encodeURIComponent编码;仅编码动态值部分,不可整URL编码;a标签应配合data-url或URL构造器安全跳转。
-
三个点逐帧跳动效果本质是错开节奏的垂直位移,需用@keyframes定义单点动画并为每个点单独设置animation-delay,配合伪元素生成点、rem/ch单位响应式适配及GPU加速优化。
-
HTML5的input[type="password"]不校验大小写,仅屏蔽显示,大小写有效性由后端或JavaScript控制;pattern属性可做简单正则校验但体验差;推荐用JavaScript实时监听并反馈缺失项,且后端必须重复校验。
-
JavaScript包管理通过npm或Yarn统一管理第三方库,依赖关系记录在package.json中,lock文件确保版本一致;npm是Node.js默认工具,Yarn强调速度与确定性;正确区分dependencies与devDependencies、不提交node_modules、定期清理依赖比工具选择更重要。