-
直接写CSS易致样式不一致,因命名、重置、单位等无统一规范;CSS框架通过集中定义变量与约束消费实现一致性,Tailwind适合精细控制,Bootstrap适合快速原型,自建原子类适配现有SCSS架构;老页面应双轨并行、渐进替换,并注意作用域、构建配置及团队协作规范。
-
齿轮动画需用steps()实现顿挫感而非linear匀速,选24步匹配常见齿数,配合SVG精确齿形、居中transform-origin和≥1.5s时长,才能呈现真实“咔哒”机械节奏。
-
HTML5中<frameset>语法无效,浏览器直接忽略或进入怪异模式;其与DOCTYPE冲突,DOM中不生成节点,<frame>已被<iframe>取代,推荐用CSSGrid和服务端包含或SPA路由重构布局复用逻辑。
-
纯CSS贴纸效果需用position:absolute脱离文档流,配合transform:rotate(±2°~5°)和三层box-shadow(内阴影+主投影+翘角长影)实现真实感,再以inline-flex居中、不对称圆角及无衬线小字体强化细节。
-
答案:基于React/Vue和MonacoEditor实现代码展示与差异对比,通过WebSocket实现实时批注同步。前端负责交互体验,后端用Node.js+Socket.IO处理实时通信,数据库存储评论、版本等数据,确保协同一致性。
-
HTML5的<video>标签支持五种嵌入方式:一、用相对/绝对路径引用本地视频;二、用HTTP/HTTPSURL引用网络视频,需注意跨域与preload;三、用多个<source>适配不同编码格式;四、用autoplay+muted实现静音自动播放;五、添加备用文本或图片及error事件处理加载失败。
-
动态import()返回Promise,实现运行时异步加载模块,区别于静态import的预加载;当执行到import('./module.js')时才发起请求,结合Webpack或Vite可自动代码分割,生成独立chunk,用于路由级分割、功能懒加载或条件加载,首屏仅加载核心代码,降低初始体积,提升性能,且支持浏览器缓存复用。
-
removeEventListener移不掉的根本原因是传入的函数引用与addEventListener时不一致,且options参数必须完全相同;闭包、箭头函数、bind()新实例及options不匹配均导致失败。
-
Class是构造函数的语法糖,本质仍是函数对象,未改变原型继承模型,仅收拢prototype操作;差异在于语法约束(如不提升、严格模式、必须new调用)和协作友好性。
-
归档页核心是按年份高效分组并倒序排列文章,需确保日期为ISO格式、预提取年份、服务端分组须先排序且用annotate抽字段、Thymeleaf用LinkedHashMap保序。
-
现代浏览器(Chrome76+、Edge79+、Firefox75+、Safari15.4+)已原生支持loading="lazy",但iOSSafari15.4前及微信旧版WebView不识别;仅对<img>和<iframe>生效,须配合src/srcset使用,且需确保图片有明确宽高以防误加载。
-
图片加载慢的根源在于格式选择、尺寸适配与加载策略不当;应按设备支持度和内容类型选JPEG(兼容性好)、WebP(主力压缩优)、AVIF(新但支持有限),并用<picture>+srcset/sizes精准响应,首屏图禁用loading="lazy",小图标优先内联SVG。
-
TrustedTypes是需服务端、策略层、调用层三方对齐的强制拦截机制;必须配置CSP响应头(如require-trusted-types-for'script'),否则JS策略无效,且策略名须与CSP中声明的一致,否则抛TypeError。
-
iframe加载第三方页面被拒绝是因目标站点设置了X-Frame-Options:DENY或CSPframe-src限制,前端无法绕过;应优先使用官方Widget、oEmbed或后端代理解析关键信息替代直接嵌入。
-
html-minifier的--minify-jstrue选项需依赖terser且仅压缩内联脚本:若未安装terser、语法不兼容、含module/nomodule属性或危险语句,会静默跳过;它不处理外部JS,也不跨script块优化,压缩效果取决于原始JS质量。