-
BEM-Lite是精简版BEM,仅强制block__element和block--modifier两段式命名,允许元素不嵌套、禁止修饰符叠加,不校验文件路径或组件目录绑定。
-
原生<dialog>默认不渲染,必须用showModal()或show()激活;仅设open属性可初始显示,但showModal()才启用遮罩、ESC关闭和焦点锁定。
-
localStorage持久存储、跨标签页共享,适合长期非敏感数据;sessionStorage仅限当前标签页、关闭即销毁,适合临时状态。二者均只支持字符串、需手动序列化,不可存敏感信息,且无过期机制。
-
后端收不到字段八成是误用disabled而非readonly;disabled使字段值不提交,readonly则正常提交且支持聚焦复制;select等不支持readonly的元素需用替代方案。
-
在Leaflet中实现一个始终固定于地图视口中心的标记,关键在于正确监听地图移动事件并动态更新标记位置;需注意事件回调参数是LeafletEvent对象,地图实例需通过event.target访问。
-
必须用bdi隔离用户生成内容方向,否则RTL/LTR混排时标点错位、数字倒序、复制失真几乎必然;bdi强制创建BIDI隔离段,无视父容器dir,仅依内部首字符独立运行UBA,而bdo是字符级硬翻转,仅适用于调试或镜像场景。
-
relative定位不改变元素在文档流中的位置,但会为absolute子元素创建新的定位上下文;即使无偏移,设为relative的父元素也会成为子元素定位参照物;子元素的top、left等属性将相对于该父元素计算,而非继续向上查找;若无定位祖先,则默认相对于视口定位;relative元素仍占据原空间,布局不受影响;常用于弹窗、下拉菜单、卡片按钮、轮播图箭头等需要局部精确定位的场景;其核心作用是静默建立坐标系,实现子元素自由定位且不破坏整体布局。
-
JavaScript操作HTML元素的核心是先用querySelector等方法获取元素,再通过textContent、style、classList等属性或addEventListener等方法修改内容、样式、属性及绑定事件。
-
flat(Infinity)对嵌套评论“不起作用”是因为它只扁平化数组的数组,无法自动提取对象中的replies等字段;仅当数据已是多层嵌套数组形式时才有效,标准树形结构应使用递归flatMap。
-
浏览器静默跳过<source>的最常见原因是media属性写法错误,必须是完整合法的CSS媒体查询,括号不能省、关键字不能漏;其次type值错误、服务器Content-Type不匹配、<source>顺序不当或图片文件损坏也会导致fallback。
-
cite属性仅合法用于<blockquote>、<q>、<ins>、四个标签,值必须为URL,与<cite>元素语义不同,不可混用。
-
<p>滚动百分比应使用document.documentElement.scrollHeight-window.innerHeight计算最大可滚动距离,再结合window.scrollY与Math.min/max限定范围,并用requestAnimationFrame节流更新,同时适配暗色模式与移动端弹性滚动。</p>
-
色差主因是浏览器对HEX颜色的色彩空间解释不一致;必须用rgb(255107107)等显式sRGB语法锚定空间,否则linear-gradient中同一HEX值在Chrome、Firefox、Safari里映射的物理色不同,导致插值路径和最终渐变效果差异。
-
键盘焦点测试必须纯键盘操作并配合开发者工具验证,需检查焦点顺序是否符合DOM结构、可聚焦元素是否缺失tabindex或被禁用、滚动容器是否可聚焦、模态框焦点捕获与回退是否正确,以及视觉反馈是否完备。
-
@media(color-gamut:p3)仅检测设备P3能力,不触发颜色升级;要显示更鲜艳色必须用color(display-p3)函数配合@supports检测,并提供sRGBfallback。