-
统一表单控件样式需重置appearance、显式定义边框背景内边距,自绘select箭头,用CSS变量暴露主题色等可覆盖属性,配合:focus-visible与键盘测试保障可访问性。
-
原型链的本质是对象的proto指向其构造函数的prototype;它基于[[Prototype]]内部属性实现动态属性查找,以Object.create()构建更安全,class只是语法糖,核心仍是原型继承。
-
用<canvas>模拟终端最轻量可控,DOM方案因光标定位、输入法兼容、滚动不一致及重排卡顿等问题易翻车;Canvas核心是清屏、逐行绘制、光标更新三步,需严格帧同步。
-
::after清除浮动失效的根本原因是伪元素默认display:inline,无法触发BFC且不撑高父容器;必须同时满足content非none(如"")和display为block/table/flex等块级显示值。
-
使用position:sticky可实现导航按钮滚动时始终可见。1.基本语法:设置position:sticky和top值,使元素在距视口顶部指定距离时固定;2.调整top值可控制吸附位置,如top:10px避开头部内容;3.确保父容器未设置overflow:hidden、scroll或auto,避免sticky失效;4.实际应用中,为nav添加sticky、背景、阴影等样式,可提升用户体验。关键点:启用sticky定位、合理设置top偏移、避免父级overflow限制。
-
::selection伪元素不继承父元素颜色,必须显式设置color和background-color;仅支持有限样式,需加浏览器前缀,对input/textarea无效,且无法用z-index调整层级。
-
before()方法用于在被选元素前插入内容,作为兄弟节点出现;2.可插入HTML字符串、DOM元素、jQuery对象等;3.与prepend()(内部插入)和after()(后置插入)不同,before()在外部前置内容。
-
JavaScript的函数式风格指以纯函数、不可变数据、声明式组合为核心的编程范式,要求函数无副作用、不修改状态、用const替代let/var,并通过pipe/compose组合单参数纯函数。
-
Object.defineProperties可批量配置带权限控制的属性描述符,核心是将读写权限、隐藏逻辑封装进get/set,通过统一策略函数canAccess动态控制访问行为,避免硬编码重复判断。
-
直接用PerformanceObserver监听"first-input"是唯一准确获取真实FID的方式;FID(entry.duration)量化主线程卡顿程度,即用户操作到浏览器开始处理间的阻塞时长。
-
JavaScript类型转换分显式和隐式两种。显式转换通过Number()、String()、Boolean()手动转类型;隐式转换在运算时自动发生,如+操作符触发字符串拼接,数学运算符触发数字转换,逻辑判断依据真值表。使用==时会进行类型转换,推荐用===避免意外。对象转原始值调用valueOf()或toString(),数组加空字符串即转为字符串。掌握这些规则可减少bug。
-
HTML本身不支持3D,真正实现靠CSS的perspective、transform-style:preserve-3d和transform系列函数;perspective必须设在父容器上,preserve-3d需作用于变换父元素以保留子元素Z轴坐标,且Z值须在透视范围内才生效。
-
align-items:stretch没起作用是因为父容器缺少明确的交叉轴尺寸(如height/min-height),或子元素设置了height、min-height、align-self等限制;flex-direction:column时它控制宽度而非高度。
-
应优先用em,因其传达语义强调,使屏幕阅读器重读、SEO识别重点;i仅用于外文词、术语等无强调意图的惯例斜体场景。
-
应使用rgba()等颜色函数设置背景透明,而非opacity,因opacity会使子元素继承叠加透明度导致内容发虚;rgba()只作用于指定颜色属性,确保文字等内容保持完全不透明。