-
HTML无法彻底加密,但可通过五种方式提升防护:一、禁用右键与文本选择;二、混淆HTML结构与内联内容;三、服务端动态渲染;四、添加不可见水印与DOM变动检测;五、启用SubresourceIntegrity与CSP策略。
-
:hover用于鼠标悬停时触发样式,如按钮变色、下拉菜单显示;:focus在元素获得焦点时生效,常用于输入框高亮和键盘导航,提升可访问性。两者可组合使用,统一交互反馈,但需注意移动端hover无效、focus不可省略,并遵循LVHFF顺序以确保样式正确应用。
-
重排比重绘更昂贵,因重排需重新计算几何属性并影响渲染树;重绘仅更新像素颜色等不改变布局的样式;强制同步布局和频繁DOM操作是主要性能瓶颈。
-
在TailwindCSS中,预设的w-108并不存在,导致图片无法按预期缩放;需使用任意值语法w-[108px]显式声明宽度,才能生效。
-
使用transform可优化position:fixed元素的滚动性能,避免频繁重排与重绘。通过将top、left替换为transform:translate(),并结合will-change:transform提升合成效率,使元素独立到GPU图层,减少主线程压力。配合IntersectionObserver替代scroll事件监听,进一步降低性能开销,适用于固定导航、悬浮按钮等场景,实现流畅动画与高效渲染。
-
使用@import可实现CSS模块化,配合Sass等预处理器支持嵌套引入;推荐改用@use以获得更好作用域控制,结合构建工具如Webpack启用CSSModules,确保类名局部作用域,提升项目可维护性。
-
使用CSS的text-transform:lowercase属性可将HTML文本显示为小写,无需修改原始内容,实现格式统一。
-
Kruskal算法通过贪心策略选择不构成环的最小权重边构建最小生成树,使用并查集高效检测环,时间复杂度为O(ElogE),在稀疏图中表现更优。
-
fetch是浏览器原生API,轻量简洁但需手动处理错误、cookie和超时;axios是功能完备的第三方库,内置拦截器、自动JSON处理、错误分类等,适合复杂场景。
-
大概率是缓存问题——浏览器或CDN加载了旧版CSS。因link引入的CSS默认启用强缓存或协商缓存,生产环境常配置长期缓存,导致更新后URL未变则用户仍用旧版本;验证可通过Network面板查看状态码与响应头;根本解决需构建时添加哈希文件名、服务端合理设置缓存头、上线后刷新CDN,而非依赖用户强刷。
-
border-width用于设置元素边框粗细,可统一或单独指定四边宽度。取值支持thin、medium、thick关键字及具体长度单位(如px、em)。当使用1至4个值时,分别对应上、右、下、左的顺时针顺序。也可通过border-top-width、border-right-width等属性独立设置某一边。需注意:必须先定义border-style(如solid)才能显示边框;宽度不能为百分比或负数;未设置颜色时默认继承文本颜色。在box-sizing:content-box下,border-width会
-
最稳妥的做法是用优先级更高的类选择器显式接管状态样式,统一将伪类状态封装为普通类(如.is-hovered、.is-disabled),由JS控制增删,CSS只写.btn.is-disabled等明确组合,所有规则优先级一致且可控。
-
可通过五种方法保存网页HTML源代码:一、“另存为”保存完整网页;二、开发者工具复制outerHTML;三、地址栏输入view-source:协议;四、命令行用wget下载;五、安装SingleFile等扩展一键导出。
-
IndexedDB是浏览器内置的NoSQL数据库,用于JavaScript异步存储大量结构化数据。通过indexedDB.open()创建或打开数据库,并在onupgradeneeded中定义对象仓库。数据操作需通过事务进行:使用add()添加、get()读取、put()更新、delete()删除。支持离线存储与持久化,适合高性能Web应用,但API复杂,建议封装或使用Dexie.js等库简化开发。
-
防抖是事件停止触发一段时间后执行一次,适合搜索输入等只关心最终结果的场景;节流是固定时间间隔最多执行一次,适合滚动监听等需稳定节奏的场景。