-
绝对定位元素使父容器高度为0,因其彻底脱离文档流,父容器计算高度时完全“看不见”它们;这是CSS规范行为,非bug。常见现象包括offsetHeight为0、背景不显示、兄弟元素上移;clearfix等浮动清除方案无效。
-
Xcode不直接运行HTML,但可通过创建iOS项目并使用WKWebView加载本地或远程HTML文件实现预览;2.添加HTML文件到项目后,在ViewController中导入WebKit,创建WKWebView实例并加载文件;3.若仅需预览,可用Xcode编辑HTML后直接用Safari打开查看效果;4.调试时可通过Safari的开发菜单连接模拟器中的网页进行JS和页面调试。
-
答案:通过SourceMap和堆栈解析技术可还原压缩代码的错误位置。SourceMap是记录压缩后代码与原始源码映射关系的JSON文件,构建工具如Webpack、Vite支持生成,上线时应将.map文件单独部署供解析系统使用。通过监听window.error和unhandledrejection事件捕获错误堆栈,提取文件URL、行列号后,利用sourcemap-js等库在服务端查询原始位置。需确保每个JS资源上传对应.map文件,通过sourceMappingURL指向,并在解析时校验版本一致性、过滤敏感
-
带参数的LessMixin必须显式声明默认值,否则未传参时编译报错中断;正确写法为在参数后用冒号设默认值、分号分隔,且所有参数均应设默认值以防编译失败。
-
BEM命名本身不导致性能问题,瓶颈在于过度嵌套的选择器如.page-home.layout-main.header.header__logo--dark引发的逐级回溯匹配;应直接使用.card__title等独立选择器,避免祖先链过长,并通过工具拦截冗余嵌套。
-
原生<inputtype="date">与自定义日历非替代关系,而是协同关系:前者保障可访问性、表单验证和系统级交互,后者仅在需动态禁用、多日期范围、非单日粒度等原生无法满足时作为UI增强层,须通过隐藏原生input或同步value来保持表单规范。
-
表单提交地址必须是可公开访问的URL,否则扫码无法打开;应部署到公网服务如GitHubPages,避免本地、内网或未部署地址,并用QRCode.js动态生成带高容错的二维码。
-
必须用标签而非CSS模拟,因其原生支持语义正确、浏览器自动适配字体基线、保障屏幕阅读器准确朗读,适用于化学式(如H₂O)、数学公式等需精确对齐与无障碍访问的场景。
-
可迭代协议要求对象实现Symbol.iterator方法,返回遵循迭代器协议的迭代器;2.迭代器协议要求对象具有next()方法,返回包含value和done属性的对象;3.二者共同支持for...of、扩展运算符等语法,使数组、字符串及自定义对象可被遍历。
-
在React中,自定义组件(如<AddTaskBtn/>)不会自动继承DOM事件监听能力;必须显式接收并透传onClick等事件处理函数到内部原生元素(如<button>),否则点击无响应、无报错、无日志。
-
:focus-visible不能替代:focus,因其仅在键盘导航时生效,需与:focus配合使用,且:focus-visible必须置于:focus之后;须先用:focus设默认无显眼样式,再用:focus-visible为键盘用户恢复焦点指示。
-
本文对比了手动监听键盘/鼠标事件与使用ng-idle库检测用户空闲状态的优劣,指出原生方案虽轻量可行,但在跨设备兼容性、事件覆盖完整性及维护性上存在明显短板;ng-idle则提供健壮、可配置、开箱即用的空闲管理能力。
-
不能。will-change对长列表滚动无效甚至拖慢性能,因其强制图层提升增加内存与GPU压力;应优先用虚拟滚动、contain:strict、移除耗性能样式等方案。
-
ARIA是补足HTML语义不足的精确工具,非万能开关;role定义“是什么”,aria-*描述“当前状态”,二者缺一不可,误用比不用更糟。
-
:first-child和:last-child用于选中父元素的首尾子元素,可精准控制样式。根据位置匹配,适用于去除首尾间距、突出首项、边框控制等场景,如list-item:last-child清除下边框;需注意必须是同级首个或末个子元素,且类型匹配,现代浏览器均支持,IE9+可用。