-
img元素永远不匹配:empty,因其为替换元素且始终存在于DOM;可靠方案是onerror添加broken类,配合img.broken::after伪元素显示占位符,并注意object-fit下的定位错位问题。
-
background-image:url(attr(data-bg))不生效,因attr()在该属性中未被浏览器支持;正确做法是用JavaScript读取data-bg值并赋给style.backgroundImage,或通过CSS变量中转(需注意Safari15.4+兼容性)。
-
HTML5邮件发送有三种方式:一、mailto:链接调用本地邮件客户端,需URL编码参数;二、Ajax调用后端SMTP接口,支持附件与状态反馈;三、混合方案优先Ajax,失败时降级mailto,并前端校验邮箱格式。
-
递归函数是函数调用自身,必须有明确终止条件(basecase),否则导致栈溢出;核心结构为basecase加recursivecase,常见错误包括缺return、basecase条件错误、问题规模未缩小。
-
本文详解如何在Bootstrap4.5中禁用默认的「单开互斥」行为,使侧边栏导航中的多个.dropdown可同时保持展开状态,通过监听hide.bs.dropdown事件并智能拦截非显式关闭操作来实现。
-
nonce是CSP中允许内联脚本的安全机制,需服务端动态生成并严格匹配响应头与script标签中的值;不支持meta标签设置,且对eval和内联事件无效。
-
MediaQuery是CSS3根据设备特性应用不同样式的机制,核心语法为@mediascreenand(条件){样式规则},常用min-width和max-width设置断点;推荐移动优先策略,先定义小屏样式,再逐步增强大屏体验,结合HTML的link标签可控制外部CSS文件的条件加载,提升性能与维护性。
-
requestAnimationFrame+WebAnimationsAPI更卡是因为误用触发重排或未满足GPU加速条件;正确做法是仅动画transform/opacity、用will-change/translate3d主动提示合成、复用Animation而非频繁新建。
-
本文介绍使用JavaScript类名切换配合CSStransform:scaleY()实现div元素的平滑垂直展开/收起效果,适用于隐藏内容(如SVG容器或子模块)的交互式显示控制。
-
slice分页核心是用(page-1)*pageSize和Math.min(start+pageSize,arr.length)计算索引直接slice取数,需校验输入、防越界、保持不可变性。
-
HTML5新增input类型包括email、url、tel、number、range、date、month、week、time、datetime-local、search、color;需注意兼容性降级为text及校验差异,应结合required、pattern和JS兜底。
-
HTML5快速入门需掌握五步:一、标准文档结构(DOCTYPE、lang、meta);二、语义化标签(header、nav、main、article、footer);三、增强表单(email、date、search等type及placeholder、min/max);四、多媒体(video/audio标签及poster、autoplay等属性);五、本地存储(localStorage/sessionStorage的增删查操作)。
-
flex-basis是分配空间前的初始基准,非固定值;优先用0px而非0%,因0%在旧版Safari中可能回退为auto导致布局错乱,且需配合min-width:0解除隐式最小尺寸限制。
-
动态import()不能直接加载HTML文件,仅支持JavaScript模块;需用fetch()加载HTML片段并注入,或通过构建工具(如Vite?raw)转为字符串,但非浏览器原生能力。
-
应优先使用URLSearchParams解析URL参数,它由浏览器原生支持(Chrome49+等),自动处理编码解码、空值及重复键;用newURLSearchParams(window.location.search)获取当前页参数,或newURL(urlStr).searchParams解析任意有效绝对URL。