-
HTML5通过<audio>和<video>标签原生支持音视频嵌入,配合<source>多格式回退、poster封面、preload预加载及<track>字幕功能,实现跨设备兼容播放。
-
应使用details+summary实现FAQ折叠,它原生支持可访问性、SEO和无需JS的交互;summary仅允许短语级内容,禁用块级标签;需扩大移动端点击区域并修复iOSSafari点击异常。
-
max-width必须配margin:0auto才能居中,因max-width仅限制最大宽度而不控制位置;仅设max-width时内容左对齐、右侧留白,而margin:0auto触发浏览器水平居中逻辑,且避免margin:auto引发的垂直偏移。
-
应使用window.matchMedia异步监听系统主题切换:先获取MediaQueryList实例并立即设置初始UI策略,再通过addEventListener绑定change事件处理函数,避免废弃API;渲染逻辑需解耦、轻量、节流;组件卸载时必须移除监听器;SSR环境需判断window存在性;不支持时降级为localStorage或轮询。
-
scrollBehavior在新DOM渲染完成但未激活前调用,通过读取当前scrollTop捕获用户最后视图位置;返回{x:0,y:0}滚动到顶、{selector:'#id'}滚动到元素、null不滚动、Promise可异步控制。
-
IE10仅支持display:-ms-flexbox,必须前置且不可省略;-ms-flex-pack/-ms-flex-align替代justify-content/align-items;flex需拆解为-ms-flex三值(禁用auto);错位时建议降级为display:table方案。
-
Stylelint和Prettier结合使用可提升CSS代码质量与一致性:Stylelint检查代码规范和潜在错误,Prettier统一代码格式,二者互补。通过安装stylelint、prettier及其集成包,配置.stylelintrc.json和.prettierrc.json,并在VSCode中设置保存时自动格式化,可实现开发时实时校验与格式化;再结合husky和lint-staged在pre-commit阶段拦截不合规代码,确保提交代码符合标准。挑战包括初始配置复杂、规则冲突、团队接受度等,但通
-
input标签无内置状态切换能力,需属性+CSS伪类+JS配合实现;disabled使元素脱离表单流程,readonly仅禁编辑但仍可聚焦和提交;focus/blur需事件监听,验证状态需reportValidity()等主动触发。
-
通过设置父容器为flex布局并使用flex-direction:column,配合margin-top:auto将按钮推至底部,再在按钮容器上应用justify-content实现水平对齐,如居中、靠左或两端分布,适用于表单、弹窗等场景。
-
async函数自动返回Promise,await在async内暂停执行等待Promise完成;多任务需据依赖关系选Promise.all(并行)或链式await(串行),并合理处理错误。
-
Map.prototype.keys()返回惰性迭代器,支持按需消费、条件中断和分页扫描,是实现懒加载式遍历的核心基础,但不减少内存占用且要求扫描期间Map稳定。
-
正则表达式适合轻量级SQL条件提取,如WHERE子句及AND/OR拆分、操作符右侧值解析,但不适用于嵌套括号、注释或动态SQL;应优先使用sqlparse等专用解析器。
-
使用::placeholder伪元素可美化输入框提示文字,支持颜色、字体、透明度等样式控制,需添加各浏览器私有前缀以确保兼容性,建议避免过淡颜色并配合label提升可访问性。
-
HTML页面缓存必须由服务端HTTP响应头(如Cache-Control、Expires)控制,meta标签无效;因浏览器不解析metahttp-equiv缓存指令,且缓存决策发生在HTML解析前,CDN与代理也忽略meta。
-
ruby-position只能设在ruby元素上,支持over/under/right三值,Safari16.4+才真正支持under;移动端WebView兼容差,需@supports检测或JSfallback。