-
可用HTML+CSS实现时间刻度标尺:固定时间粒度(如1天=60px),用grid布局确保等宽列,配合transform:translateX()整数滚动对齐,white-space:nowrap防文字换行,position:sticky固定轴头,并适配DPR导出清晰图。
-
JavaScript支持函数式编程但需主动约束:不可变性(const≠不可变,需Object.freeze或immer)、纯函数(无副作用、输入输出确定)、柯里化(提升复用而非性能),核心是习惯而非语法。
-
BEM通过将作用域编码进类名(如search-form__submit)实现样式隔离,避免全局冲突;禁止无上下文规则、!important和嵌套后代选择器,强调Block功能闭环与命名一致性。
-
需借助JavaScript库将Markdown转HTML:一、用marked.js实时渲染;二、用fetch加载外部.md文件;三、用showdown.js增强兼容性;四、服务端预渲染优化SEO与性能。
-
:empty伪类选择完全无内容的元素(不含文本、子元素或空格),可用于设置占位背景或提示文字。例如为空容器添加斜纹背景或通过::before显示“暂无内容”;适用于表单上传、评论区、数据表格等场景,提升空状态用户体验。使用时需确保元素纯净,避免空格导致匹配失败。
-
^=匹配属性值开头字符串,区分大小写且纯字面匹配;$=匹配结尾字符串,同样区分大小写;=要求属性值完全相等;*=进行子串搜索,最宽松但易误匹配。
-
keygen标签已被彻底移除,所有主流浏览器均不解析;其替代方案是WebCryptoAPI手动生成密钥对或优先采用WebAuthn进行身份认证。
-
JavaScript类型转换分隐式和显式,隐式转换在==、+、-等运算及布尔判断中自动发生,如1+"2"→"12"、"6"-"2"→4、[]为真值;对象转换先调用valueOf()再toString()。
-
flex容器上设break-inside:avoid无效,因分页控制需作用于块级子项;必须为每个卡片等子项单独添加该属性,并确保无overflow:hidden、transform、绝对定位等干扰,推荐@mediaprint中降级为block布局。
-
JavaScript代码分割是借助Webpack、Vite等工具和import()动态导入,将大文件按需拆分为小chunk以优化加载。常见方式包括路由级分割、公共依赖提取(如splitChunks)、条件性功能加载,核心好处是提升首屏速度、缓存效率、内存占用及团队协作。
-
设置height:100vh会导致Flex布局在输入法弹出时变形,因其按初始视口高度计算且iOSSafari等不更新vh或触发resize;应改用min-height/max-height:100dvh+overflow-y:auto,并对关键区域设flex-shrink:0或flex:00auto,配合visualViewport.resize监听与防抖处理。
-
HTML表格每行加复选框应直接置于<td>内,用唯一name="row-select"、data-row-id标识业务主键,避免id重复和内联JS;全选逻辑需双向同步:监听行复选框change事件动态更新表头复选框的checked与indeterminate状态。
-
是,但必须由主线程通过transferControlToOffscreen()移交OffscreenCanvas实例,Worker内不可直接new;Chrome69+、Firefox72+支持,Safari17.5仍不支持。
-
CSS工具和框架本质不同:工具提升编写效率,如Sass、CSS-in-JS、PostCSS;框架提供现成样式,如Tailwind(原子类)、Bootstrap(组件化)、Materialize(设计系统)。选择取决于需求:统一管理用工具,快速搭建用框架。
-
HTML5中script标签的type属性可省略,默认为text/javascript;仅type="module"有实质性行为差异,启用ES模块系统;type="application/json"等用于存储非执行数据。