-
应按语义化层级组织HTML5结构:一、用header/nav/main/article/section/aside/footer替代div;二、HTML/CSS/JS物理分离;三、class名遵循BEM规范且语义化;四、用data-*属性解耦交互;五、CSS变量与JS同步状态。
-
align-content用于多行Flex布局中控制各行整体在交叉轴上的对齐方式,仅当flex-wrap为wrap/wrap-reverse且实际换行、容器有明确高度时生效;它不作用于单个子项,与align-items职责分明。
-
使用<audio>标签需结合JavaScript控制:不加controls则不可见不可操作,加了则无法自定义UI;自动播放受浏览器策略限制,必须由用户手势触发;状态监听依赖ontimeupdate、onended等事件而非轮询属性;iOS限制最严,建议每次播放新建Audio实例。
-
答案:JavaScript流式编程核心是Observable与RxJS处理异步数据流。Observable作为可推送多值的数据源,支持创建、操作符组合、错误处理及资源清理,通过声明式编程提升复杂异步场景的代码质量。
-
::selection样式不生效最常见原因是浏览器兼容性或选择器作用域错误,仅支持有限属性且不继承父级样式,需分别声明::-moz-selection和::-webkit-selection,并确保元素可文本选中。
-
JavaScript通过CanvasAPI绘图需先用getContext('2d')获取2D上下文,再调用fillRect、arc、lineTo等路径方法绘制图形,配合fillStyle、strokeStyle等属性设置样式,并通过clearRect、requestAnimationFrame实现动态交互与重绘。
-
JavaScript正则关键在匹配逻辑贴合真实字符串结构:字面量预编译适合静态模式,RegExp构造函数运行时编译适合动态拼接但需双写反斜杠;^、$在m标志下匹配每行起止,\b是单词边界非空格边界;贪婪匹配吞最多,惰性匹配取最少,嵌套结构慎用正则。
-
HTML5无版本跳转差异,跳转行为取决于实现方式:a标签、JSAPI(如location.assign)、HTTP重定向在HTML4/5中完全一致;唯一真差异是HTML5新增的HistoryAPI(pushState/replaceState),支持无刷新路由但需同源且服务端配合。
-
捕获组通过()保存匹配内容,命名捕获组使用?<name>提升可读性;2.零宽断言匹配位置而非字符,包括正向/负向先行和后行断言;3.贪婪匹配尽可能多字符,懒惰模式加?以减少匹配量;4.JS正则不支持递归但可模拟简单嵌套,复杂结构建议用解析器。掌握这些模式可提升字符串处理效率与精度。
-
打印时padding被截断是因为物理纸张无滚动机制,内容超出可打印区域即被裁切;应使用@page设置margin控制边界,而非依赖padding,并通过导出PDF验证真实效果。
-
自定义checkbox样式的核心是隐藏原生控件(推荐opacity:0+position:absolute),用关联的label或伪元素模拟视觉状态,并通过:checked伪类控制选中样式,同时保障可访问性与交互反馈。
-
组件嵌套尺寸失控本质是盒模型在多层继承中被反复计算,需逐层定位box-sizing、margin折叠及transform叠加问题,用outline和computed面板精准排查。
-
应使用requestAnimationFrame替代setTimeout实现平滑动画,配合预加载图片(newImage()+onload)、避免复用实例、用opacity/visibility控制切换,并通过picture或服务端适配WebP等格式。
-
变量提升与暂时性死区共存,体现var、let、const在声明机制上的差异:var提升后初始化为undefined,可访问;let/const声明提升但未初始化,处于TDZ中,访问报错。
-
使用@font-face引入字体需确保CORS允许、显式设置font-display(推荐swap)、回退字体栈按平台分组声明、避免强制同步布局,并注意多语言混合排版的字体闪动问题。