-
HTML离线功能实现无需网络硬件,核心方法有五:一、ServiceWorker缓存资源;二、CacheAPI与localStorage协同存储表单数据;三、file://协议本地运行;四、manifest.json启用PWA安装;五、IndexedDB持久化存储结构化数据。
-
HTML压缩应使用html-minifier-terser等工具实现构建时压缩,关键配置包括collapseWhitespace和removeComments;Webpack中通过html-webpack-plugin配置;服务端需启用gzip或brotli传输压缩,效果远超文件级压缩。
-
button的type属性仅支持submit、reset、button三个合法值,其他值会按表单内外环境降级处理,不写type时默认行为因浏览器和位置而异,三者语义与功能严格区分且不可互换。
-
在JavaScript中获取数组交集的推荐方法是结合Set和filter,1.对于原始值数组,将一个数组转换为Set,利用其O(1)查找效率,再用filter筛选出另一数组中存在于Set的元素,实现O(m+n)时间复杂度;2.对于对象数组,需指定比较键(如id),将第二个数组的键值构建成Set,再过滤第一个数组中键值存在于Set的对象;3.实际选择算法时应权衡数组大小、数据类型、代码可读性及是否引入工具库,优先推荐Set方案以兼顾性能与简洁性,该方法完整有效且适用于大多数场景。
-
Intl.DateTimeFormat是JavaScript中用于国际化日期和时间格式化的强大工具。1.它能根据指定的语言环境自动处理日期格式、月份名称、星期几、时区等;2.支持通过options对象精细控制年、月、日、时、分、秒等组件的显示方式;3.提供dateStyle和timeStyle快捷选项用于常用格式;4.支持指定时区(timeZone)及时区名称(timeZoneName);5.相比传统Date方法,具备更高的灵活性、更精细的控制、更强大的国际化支持及更优的性能;6.使用时应明确指定loca
-
Canvas是HTML5位图绘图API,核心在于控制2D上下文路径操作:获取上下文、设置样式、定义路径、调用fill/stroke渲染;动画需requestAnimationFrame循环清屏重绘。
-
animation-direction取值为normal、reverse、alternate、alternate-reverse,分别控制动画每轮的播放方向逻辑;设reverse无变化常因关键帧定义未适配倒播顺序。
-
position:relative本身不引起偏移,必须配合top/right/bottom/left才生效;它建立新定位上下文、不脱离文档流、影响后续布局且支持z-index。
-
Flexbox容器内文字不会自动随容器缩放,必须通过clamp()配合容器查询或ResizeObserver实现响应式字号。
-
本文详解如何解决为动态创建的DOM元素(如待办列表中的“完成”按钮)绑定事件时出现的Cannotsetpropertiesofnull错误,核心方案是避免重复ID、改用事件委托,并推荐使用createElement替代innerHTML+=。
-
BFC能清除浮动是因为它使父容器形成独立渲染区域,将浮动元素包含在内从而撑开高度;触发条件包括float不为none、position为absolute/fixed、display为inline-block/table-cell等、overflow不为visible。
-
Firefox完整支持mask-composite全部值,Chrome/Edge虽识别关键词但忽略语义、始终按add逻辑合成,根源在于该属性属CSSMaskingLevel1“at-risk”特性,Blink引擎尚未实现可配置合成模型,生产环境应降级使用SVG<mask>或clip-path。
-
浅拷贝后的嵌套数组仍指向同一块物理内存,因其仅复制外层数组容器及内部元素的引用地址,未为嵌套对象分配新堆空间,导致修改深层内容时原数组同步变化。
-
justify-content和align-items对绝对定位子元素无效,因为position:absolute使元素脱离文档流、不再属于flex项目,无法参与flex布局计算;其定位仅依赖最近的定位祖先及top/left/transform等属性。
-
直接改--bs-btn-bg变量最省事:Bootstrap5+按钮颜色由CSS变量控制,应在:root或特定选择器中重设--bs-btn-bg、--bs-btn-border-color、--bs-btn-hover-bg等,避免覆盖.btn的background-color;仅改部分变量或加载顺序错误会导致btn-outline-*等失效,深色模式需配合@media手动适配。