-
全屏滚动页面的核心是CSSmin-height:100dvh+scroll-snap-type:ymandatory,需配合scroll-snap-align:start、禁用overscroll-behavior及用IntersectionObserver监听页面切换,避免JS模拟滚动性能问题。
-
可在Canvas中用JavaScript绘制箭头,方法包括:一、手动路径绘制;二、封装drawArrow函数;三、SVG内嵌矢量箭头;四、CSS伪元素模拟;五、Path2D优化批量渲染。
-
浏览器中不能直接用btoa()编码图片二进制数据,需用FileReader.readAsDataURL()转为Base64字符串并截取data:前缀后部分;Node.js中用Buffer.toString('base64');注意MIME类型匹配、长度限制及避免重复编码。
-
background-size:cover未生效主因是父容器高度为0;需设min-height:100vh、避免套用限制宽度的.container,并确保元素真正占满视口。
-
容器查询不支持CSS变量动态响应,需通过container-type设上下文并在@container内重定义变量;clamp()无法与容器单位混用,必须用离散断点配合fallback值实现响应式缩放。
-
签名验证失败时应先查Network中响应体或响应头中的reason字段,再排查密钥拼写、解码错误及环境变量配置,最后校准时间戳——服务端授时优于本地Date.now()。
-
本文介绍在不使用JavaScript动态加载的前提下,通过服务端包含(SSI)、构建工具、静态站点生成器等方案,实现HTML头部的集中维护与全站复用。
-
私有类字段必须用#前缀而非下划线命名约定,因后者无语法隔离;#字段在引擎层强制限制访问,仅限声明它的class内部使用,子类、Proxy、Object.keys等均不可见,且性能优于WeakMap模拟方案。
-
在JavaScript中删除HTML元素可以使用remove()方法或removeChild()方法。1.remove()方法简洁直接,但不兼容旧版浏览器。2.removeChild()方法通过父节点删除元素,兼容性更好。3.删除多元素时需从后往前删除,避免DOM动态变化导致跳过元素。使用虚拟DOM技术可提升性能。
-
在HTML中,<tr>定义表格行,<td>定义表格单元格。1.<tr>是表格的骨架,包围<td>和<th>形成结构。2.<td>填充表格内容,支持colspan和rowspan属性,使布局更灵活。
-
JavaScript通过window.history操作浏览器历史栈但无法读取URL列表或跳转至任意条目;pushState()新增历史记录,replaceState()替换当前项;两者均不触发popstate事件,仅导航时触发;state对象刷新后丢失,需配合sessionStorage或URL参数持久化。
-
accesskey属性不可靠,应禁用;其仅触发焦点切换且无反馈,存在跨浏览器差异、系统快捷键冲突、无障碍缺陷等问题;生产环境须用document级keyboard事件监听,配合e.ctrlKey/e.metaKey和e.code判断,并妥善管理生命周期与上下文。
-
::selection仅支持color和background-color两个属性,不继承父元素颜色,需显式声明;其他属性如text-shadow、font-size等无效,且移动端(尤其iOSSafari)支持有限。
-
通知API允许网页发送桌面通知,需按序请求授权、检查权限(granted/denied/default)、创建Notification实例;必须由用户手势触发requestPermission(),支持body/icon/tag等配置及onclick/onclose事件监听。
-
避免Promise嵌套的关键是用链式调用代替层层then嵌套,同时合理使用async/await让异步逻辑线性表达;通过return传递值保持扁平结构,用async/await替代多层then提升可读性,避免在then中手动newPromise,并通过函数封装拆分逻辑。