-
ruby标签必须配合rb和rt才能正确渲染注音,rb是语义必需的被注音字容器,rt是对应读音,二者须一一紧邻配对;省略rb或错用结构会导致排版错乱、无障碍失效;rtc支持多层注音但仅Firefox原生支持;尽管W3C标记rb为弃用,当前所有主流浏览器仍强制要求显式书写rb。
-
图片上hover用::after无效是因为img是替换元素,不支持伪元素;需外包容器并设position:relative,::after用absolute定位+opacity过渡防闪动,注意兼容性与字体回退。
-
JavaScript调试应善用DevTools断点与执行流控制而非仅靠console.log;优先使用debugger语句、合理设置异步断点、启用SourceMap、掌握console高级技巧及内存泄漏排查方法。
-
Monad是封装值并提供of和chain操作的容器,用于处理上下文中的计算。它通过Maybe避免空值错误,Either处理分支逻辑,提升代码可组合性与安全性,类似Promise的链式处理机制。
-
HTML属性本身不拖慢JS交互,但data-*属性高频读写、class/id过多影响查找效率、滥用innerHTML解析及读取后立即修改样式等操作才会引发性能问题。
-
required属性仅在原生表单提交时触发验证,不实时监听;对自定义组件无效;空格字符串视为已填写;JavaScript调用form.submit()会跳过验证;服务端必须二次校验。
-
JavaScript正则表达式是匹配、查找、替换字符串模式的工具,支持字面量(如/abc/)和构造函数(如newRegExp('abc'))两种创建方式,常用test()、match()、replace()、split()方法,需注意元字符、锚点、捕获组及标志位用法。
-
引用标签语义错误会导致辅助技术误判和语义丢失;<blockquote>仅用于独立成块引用,<q>仅用于行内短引;cite属性必须为有效URL且不可省略,是机器可读来源的唯一标准。
-
HTML5结构标签可包裹表单元素且推荐使用;表单内部逻辑分组必须用<fieldset><legend>,不可用<div>或<section>替代;混用时需注意语义层级,避免错位。
-
createPortal必须作为JSX返回值的一部分在组件的return中调用,不能在事件处理函数等副作用逻辑中直接执行;它本质是React渲染流程的一环,需通过状态驱动条件渲染来实现动态挂载。
-
父容器高度塌陷导致背景图被裁切,本质是浮动使父容器无法感知子元素高度;正确清除浮动需在浮动子元素后插入clear:both的块级元素,或用display:flow-root/overflow:hidden触发BFC。
-
使用MiniCssExtractPlugin提取公共CSS,通过CssMinimizerPlugin压缩文件,结合splitChunks优化公共样式,实现异步加载与顺序控制,提升页面加载与渲染性能。
-
修改cache.manifest文件后页面不更新?浏览器不会因为清单文件内容变了就自动重新下载资源——它只在检测到cache.manifest文件的字节内容(包括注释、空格、换行)发生变化时,才触发更新流程。很多开发者改了资源路径或版本号,却忘了动清单本身。实操建议:每次修改缓存资源前,必须改动cache.manifest的某一行(比如加一句#v20240521或改一个空格)确保服务器对.manifest后缀返回text/cache-manifestMIME类型,否则浏览器直接
-
:not伪类用于选择不匹配指定条件的元素,语法为:not(选择器),可排除特定类、标签、属性或状态元素,支持链式调用和多参数(现代浏览器),但不可嵌套:not或包含伪元素,常用于精准控制样式范围,提升代码简洁性与可维护性。
-
在Supabase客户端(如React应用)中,不可直接调用supabase.auth.admin.getUserById()等管理接口——它们仅限服务端使用;应改用getSession()或getUser()获取已登录用户的公开信息,避免401“Usersnotallowed”错误。