-
button标签必须显式声明type属性,否则在Chrome等浏览器中默认为submit导致意外提交表单,而IE11则默认为button,造成兼容性问题。
-
浮动元素设pointer-events:none后点击能穿透到底层;但若其自身或任意祖先设了该属性,则整棵子树被跳过命中测试,子元素设auto也无效。
-
place-items是justify-items和align-items的简写,先水平后垂直;仅作用于网格容器直接子项,不控制子项内部布局;单值复用、双值分设,禁混单位与关键字;易与place-content、align-content混淆;受align-self/justify-self覆盖;IE不支持。
-
根本原因是video自身宽高比约束父容器尺寸,object-fit:cover仅控制内容裁剪而不改变容器布局;必须用position:fixed使父容器强制铺满视口,并重置bodymargin、设video为block且加-webkit前缀兼容旧版Safari。
-
background-image路径需相对于CSS文件位置,推荐用构建工具的url(./)写法;背景不显示常因repeat、size或容器无宽高;body上使用需重置html/body样式;响应式建议媒体查询切换,降级用background-color。
-
Grid布局中元素间距重叠主因是混淆gap、margin、padding作用范围:gap控制网格轨道间空白,应设于容器;避免给网格项设垂直margin以防偏移;padding按需设于容器或子项。
-
CSS文字渐变必须用background-clip:text配合渐变背景和透明文字实现,因color属性仅支持单色值,不接受linear-gradient()等image类型;核心四行缺一不可:渐变定义、-webkit-background-clip:text、background-clip:text、-webkit-text-fill-color:transparent,并需设置display为block或inline-block。
-
本文讲解如何避免因直接修改DOM导致原始数据丢失的问题,通过将初始值存入内存(如对象或dataset)作为“单一数据源”,确保每次计算都基于原始基准值,从而实现准确、可逆的动态比例换算。
-
JavaScript继承基于原型链,ES6的class是语法糖。原型继承灵活但易出错,适合动态场景;类继承结构清晰,利于大型项目协作,本质仍为原型链。
-
动态import()无法直接加载CSS是因原生ES模块仅支持JS,CSS需构建工具(如Vite/Webpack)处理并注入;Vite依赖cssCodeSplit和无外部引用前提,Webpack需MiniCssExtractPlugin与magiccomment,纯前端则应手动创建link标签加载。
-
HTML5中用<metahttp-equiv="refresh">可原生实现定时跳转,语法为<metahttp-equiv="refresh"content="秒数;url=目标地址">,省略url则刷新当前页,兼容性好但不可取消、不支持条件判断,现代项目优先推荐服务端重定向或JS方案。
-
高阶函数map和filter用于数组处理,map转换元素并返回新数组,filter筛选符合条件的元素,二者均不修改原数组,可链式调用实现先过滤后映射,提升代码可读性与安全性。
-
HTML页面本身不处理跨域,真正起作用的是浏览器对JavaScript发起的请求(如fetch、XMLHttpRequest)施加的同源策略限制;而<form>、<script>、<img>等标签天然不受限,因浏览器仅对脚本读取响应内容的行为做同源检查。
-
ArrayBuffer是内存中可读写的原始二进制缓冲区,需通过视图操作;Blob是浏览器中不可变、面向I/O的二进制对象,需异步提取内容,二者分工明确、常协作使用。
-
background-position动画比background-image重绘更高效,因其属合成层属性,可由GPU加速;而直接替换background-image会触发全背景重绘,易掉帧。