-
异步加载脚本在JavaScript中主要通过使用<script>标签的async和defer属性或动态创建<script>标签实现。1.async属性允许脚本在下载时继续解析HTML,完成后立即执行。2.defer属性使脚本在文档解析后但DOMContentLoaded前执行。3.动态创建<script>标签提供更灵活的控制,适合处理依赖和加载失败。
-
这不是bug,是Grid默认行为:grid-auto-rows为auto时各行高度由内容独立决定;1fr需父容器有明确高度上下文;align-items:stretch被子项尺寸声明覆盖;跨行不改变轨道自身高度。
-
不能只靠媒体查询单设column-count,必须配合break-inside:avoid、column-gap及阶梯断点;否则小屏会硬切文字、劈开图片、产生空白列,且列高严重不齐。
-
SVG内联图标fill不生效,主因是SVG自带fill属性优先级高于CSS;解决方法为删除原fill或改用fill="currentColor",再通过CSS变量(如--icon-color)或color属性统一控制颜色。
-
clear:both的空div必须是父容器内浮动元素后的直接块级子节点,否则无效;常见失效原因包括位置错误、父容器为flex/grid、display:none或高度被锁定。
-
ServiceWorker无法重定向404,但可在fetch阶段拦截图片请求并静默替换为预缓存占位图实现兜底;需在install时预缓存占位图,fetch中用request.destination==='image'识别、结合缓存匹配与超时控制返回占位图,注意CORS图片需用no-cors模式处理。
-
CSP无法防御CDN篡改,必须与SRI(integrity+crossorigin)配合:CSP控制来源白名单,SRI校验内容指纹;integrity需搭配crossorigin="anonymous"才生效,且哈希须随资源更新。
-
行内元素的margin-bottom不触发布局计算,是CSS规范规定的行为;其垂直空间由line-height和基线决定,需改display为inline-block或block才生效,否则可用padding-bottom、transform或line-height替代。
-
clip-path加在grid容器上仅裁剪视觉,不改变子项布局位置;子项仍按原始网格线排列,超出部分被隐藏,hover和点击区域照常响应。
-
确保组件卸载时内存彻底回收,关键在于使用同一函数引用配对添加和移除事件监听器,并在useEffect清理函数中及时执行removeEventListener;避免闭包滞留和setState泄漏。
-
视频课程页面需同时解决播放控制、目录跳转、响应式布局、移动端静音拦截四件事;video必须加muted+autoplay+playsinline(含webkit前缀),双source兜底,preload="metadata",目录跳转须currentTime+play()显式触发并捕获错误,卡片用grid+aspect-ratio,禁用页面滚动改用容器滚动,错误时回退poster图,跳转逻辑与播放状态须解耦。
-
HTML实体字符是防止页面崩坏、内容错乱和XSS攻击的关键防线,必须对<、>、&、"、'等有语法意义的字符转义,而UTF-8可支持中文、emoji直输但不替代语法转义。
-
通过CSS的margin、padding及flexbox或grid的gap属性可有效调整元素间距。首先使用margin控制元素外部距离,如设置统一或方向性外边距;其次利用padding增加内容与边框间的内部空间,提升视觉舒适度;在弹性布局中推荐使用gap属性(如display:flex;gap:16px)实现子元素间均匀间隔,避免外边距合并问题;同理在Grid布局中通过gap设定网格项之间的间距,代码更简洁且响应式表现更优。综合来看,简单场景用margin/padding即可,复杂布局建议采用flex+g
-
dfn标签仅在术语首次出现且紧邻完整定义语句时使用,必须嵌套于语义化块级元素中,优先取title属性值作为定义内容,错误用法会导致语义断裂与辅助技术失效。
-
q标签不自动显示中文引号,因浏览器默认不查中文引号表,需显式设置quotes四元组(如"“""”""‘""’")、正确声明lang="zh",并确保q::before/after生效;嵌套最多可靠两层,cite属性仅影响SEO与无障碍,不渲染内容。