-
合理设置CSS中的padding能提升文本可读性与布局美观,避免内容拥挤或松散。通过适配设备屏幕、结合line-height与margin优化间距,使用相对单位和自定义属性统一管理,实现响应式排版。
-
HTML本身不提供手势识别能力,所有手势逻辑均需JavaScript基于touchstart/touchmove/touchend事件手动实现,通过坐标差值、时间阈值和preventDefault()控制判断滑动等行为。
-
子元素跨多行导致布局错乱,通常因grid-row-start与grid-row-end设置不当或与其他项冲突。应明确指定起止行号如grid-row:2/4,避免span过大溢出;在容器中使用grid-template-rows定义固定行轨道,防止隐式生成造成偏移;多个元素勿占用相同区域,可用outline调试重叠;通过grid-auto-flow:dense填补空隙,但建议对所有跨行元素显式定位。精准控制行跨度、预留空间、避免重叠是关键。
-
Array.prototype.at()是ES2022引入的安全访问数组元素方法,支持负数索引(如-1表示末尾),越界返回undefined而不报错,比arr[arr.length-1]更简洁安全,现代浏览器及Node.js16.6+原生支持。
-
直接用::before和::after写tooltip易错位,因top/left等定位值未与方向解耦,硬编码导致改方向需手动调所有偏移;正确做法是用Lessmixin封装方向参数,通过条件分支控制transform、margin及border组合,并确保父容器设position:relative。
-
根本原因是float和absolute布局天生不支持等高对齐,只有Flex或Grid能通过align-items:stretch实现自动等高;float需BFC撑父容器但侧边栏仍不拉伸,absolute则完全脱离尺寸联动。
-
浏览器原生ReadableStream读HTML易因编码、分块边界、标签截断出错;需用TextDecoderStream解码,htmlparser2流式解析更稳,DOMParser需完整字符串;HTMLStream非标准API,普通网页须自建TransformStream实现流式处理。
-
MediaQueryList接口是媒体查询响应式核心,window.matchMedia()仅是创建其实例的工厂函数;它提供matches属性和addEventListener()方法实现状态监听,需手动检查初始状态且注意语法正确性。
-
最常见的原因是页面未获焦点或监听绑定在非可聚焦元素上;需将监听挂载到document、为canvas设tabindex="0"并调用focus(),谨慎使用preventDefault(),移动端需监听resize/focusin并禁用缩放。
-
percentage()是Sass内置函数,非CSS原生,需.scss/.sass文件经Sass编译器处理,输入必须为无单位数值,输出如33.33333%,不可在纯CSS或style标签中直接使用。
-
若浏览器未返回地理坐标,原因可能是用户拒绝权限、浏览器不支持或页面未通过HTTPS加载;需依次检查协议安全性、API可用性、权限请求时机、错误处理逻辑、定位选项配置及位置变化监听机制。
-
Symbol.for无法穿透微前端沙箱实现跨应用单例共享,因其仅保证键唯一性,而存储位置受沙箱代理隔离;应通过主应用暴露未被劫持的全局对象(如window.microAppGlobal)配合Symbol.for作键名来实现。
-
不能。Bootstrap4默认栅格基于等宽百分比,无法让中间列自适应剩余空间;需用.d-flex、.flex-shrink-0和.flex-grow-1等Flex工具类实现,禁用.col类以避免flex属性冲突。
-
requestAnimationFrame是实现流畅动画的推荐方式,它自动匹配屏幕刷新率、后台暂停、提供高精度时间戳,并需递归调用形成循环;而setInterval/timeout无法对齐刷新、易丢帧且不节电。
-
手机HTML5页面需配置Viewport、响应式CSS、触摸事件优化、资源性能提升及API兼容性检测。具体包括设置viewport元标签、使用媒体查询和flex布局、绑定touchstart事件、启用async脚本和srcset图片、运行时检测Canvas/Geolocation等API支持情况。