-
该用article还是section的核心判断标准是:内容单独复制到新HTML文件中能否被完整理解;能则用article,不能则用section(或nav/aside/footer);且每个section必须含h2–h6标题,否则语义失效。
-
使用CSS@keyframes实现全屏渐变背景加载动画,通过background-position动画配合background-size:400%400%实现平滑流动,animation-fill-mode:forwards锁定终态,并在DOMContentLoaded后立即移除元素以确保无缝衔接真实背景。
-
<button>在<form>内未声明type时默认为submit,导致意外提交和页面刷新;应统一显式声明type="button"或type="submit"以避免隐蔽bug。
-
V8内联函数的关键是结构可预测、无副作用、AST简洁,而非单纯代码行数;含try/catch、eval、arguments等结构即使仅5行也会被拒绝内联。
-
JavaScript中阻止事件冒泡的核心方法是调用event.stopPropagation(),它终止事件向父级传播但不影响当前元素其他监听器;event.stopImmediatePropagation()更彻底,还阻止同元素其余同类型监听器执行。
-
库存低于阈值时通过JavaScript读取data-stock和data-threshold属性,转数字后比对,用classList切换.stock-low等CSS类实现可维护预警,封装checkStockWarning函数并在库存变更后调用,兼顾NaN兜底与事件委托防重复绑定。
-
Stylelint命令不识别主因是全局安装未配PATH或未加-g,推荐统一用npxstylelint执行;配置文件需正确设置extends和rules优先级,关闭规则用null而非false;自动修复仅限fixable规则;CI中glob路径需显式列出避免兼容问题。
-
滚动条宽度不一致引发布局偏移,根本原因是其占用视口水平空间(Chrome/Edge约17px、Firefox约16px、macOSSafari默认隐藏),导致body可用宽度突变;推荐优先使用html{scrollbar-gutter:stableboth-edges}预留空间,不支持时降级为body{padding-right:calc(100vw-100%)}补位。
-
JavaScript数组方法核心是分清修改原数组(如push、sort)与返回新数组(如map、filter),避免状态意外变更;注意find/findIndex边界行为、异步操作陷阱及链式调用类型安全。
-
required属性失效的5种常见原因:1.用在非支持元素上;2.元素被disabled或hidden禁用;3.inputtype不支持required;4.非原生submit事件触发提交;5.JS清空值后未重置validity状态。
-
capture是布尔属性,需配合type="file"和精确accept值(如image/*)才能触发原生设备;iOSSafari要求input静态存在于DOM、用户手势直触且禁用桌面模式;Android行为不一,微信X5基本不支持;应以getUserMedia+MediaRecorder为可靠替代方案。
-
float在现代开发中已无布局未来,仅剩邮件模板多栏排版和图文环绕两个不可替代场景;display:flow-root是标准清除方案,而迁移本质是思维重构——从“让元素浮起”转向“定义数据流与轴向”。
-
不能,embed标签已无法可靠播放视频;现代浏览器禁用插件支持,video标签才是原生、安全、兼容的替代方案。
-
HTML中空格会被浏览器合并,导航间距应使用CSS的margin、padding或gap控制,而非空格键或 等字符;white-space:nowrap可能导致文字挤压,需配合flex布局解决。
-
::selection伪元素不继承父元素颜色,必须显式设置color和background-color;仅支持有限样式,需加浏览器前缀,对input/textarea无效,且无法用z-index调整层级。