-
HTML空元素共14个,是W3CHTML5标准明确定义的无内容、无闭合标签元素:area、base、br、col、embed、hr、img、input、link、meta、param、source、track、wbr。
-
流式SSR的核心难点在于保障hydration稳定、避免数据重复请求、确保错误边界有效。React18的renderToPipeableStream是唯一可靠方案,需搭配hydrateRoot、组件级数据预取、精准脚本注入与分层ErrorBoundary。
-
正确设置UTF-8编码、使用lang属性标识语言、通过dir属性控制文本方向、选用支持多语言的字体如NotoSans,并结合CSS处理特殊排版与断行,可实现HTML多语言文本的良好显示与兼容。
-
ES6的class是构造函数的语法糖,本质仍基于原型链,constructor定义实例初始化逻辑;未显式声明时自动提供空构造函数,子类中需用super()调用父类构造函数;class不提升,须先声明后使用。
-
color-gamut媒体查询仅检测设备默认色彩空间能力,返回sgamut、pgamut或rec2020三值,不反映校准状态、实际渲染精度或环境影响,依赖系统与浏览器共同上报,需配合display-p3色值、ICC配置、Canvas显式设置等全链路适配才能保障广色域一致呈现。
-
button内直接放SVG图标可能触发点击区域异常,因SVG默认pointer-events为auto且vertical-align为baseline,易导致空白区不可点或图标偏移;应设pointer-events:none和vertical-align:middle,并确保无障碍属性完整。
-
答案是使用泛型和索引类型实现类型安全的EventEmitter。通过定义Events接口明确事件名与参数类型,结合TypedEmitter泛型类约束on、emit方法的事件名和参数类型,确保编译时检查正确性,避免拼写错误或参数不匹配问题,提升代码健壮性。
-
Promise是JavaScript中处理异步操作的对象,代表未来完成或失败的结果;具有pending、fulfilled、rejected三种不可逆状态;通过newPromise创建,支持链式调用、错误捕获及Promise.all等静态方法。
-
纯HTML可实现三种浪漫表白页:一、渐变背景+心跳动画文字;二、点击触发淡入弹窗告白;三、滚动逐行浮现诗意情书。均无需后端,保存为.html即可运行。
-
Safari视差失效因合成降级,需加translateZ(0)强制硬件加速;scroll事件应监听document.scrollingElement.scrollTop;touchend需补帧防跳变;纯CSS视差仅Chromium支持。
-
本文详解如何使用CSS选择器(特别是:not(:first-child)和:first-child)配合::before伪元素,实现仅在除第一个子元素外的其他项中渲染分隔符,适用于响应式面包屑导航等场景。
-
z-index不生效主因是父元素创建了独立堆叠上下文,使子元素z-index仅在内部生效;需检查opacity<1、transform非none等触发属性,并提升父容器z-index或用Portal脱离上下文。
-
Normalize.css必须在所有自定义CSS之前加载,否则其统一样式会被覆盖而失效;它不是兜底方案而是样式基线,错误顺序会导致button边框残留、h1大小不一、input对齐错位等问题。
-
Math对象提供静态数学方法:Math.round四舍五入、Math.floor向下取整、Math.ceil向上取整、Math.trunc截断小数、Math.pow或**求幂、Math.sqrt开方、Math.abs取绝对值、Math.max/min找极值;注意类型转换、边界行为及浮点精度问题。
-
通过将<a>标签设为flex容器并包裹全部内容,配合合理的CSS布局与语义化结构,即可实现整个Flexbox区域(含空白区域)响应点击,无需JavaScript。