-
Chrome56+等主流浏览器已原生支持position:sticky且无需前缀,强行添加-webkit-sticky等前缀反而无效甚至导致解析失败;真正影响生效的是父容器的overflow、transform等限制。
-
装饰器是JavaScript中用于修改类、方法等行为的语法特性,本质为声明式函数,需Babel或TypeScript支持;可用于日志、权限校验等场景,分装饰器类型及执行顺序需注意兼容性。
-
原型链是JavaScript中对象查找属性和方法时逐级向上追溯的链条,由每个对象的[[Prototype]]内部属性连接各原型对象直至null构成;它支撑继承、instanceof等机制,是JS对象系统的核心基础。
-
全屏遮罩层在Bootstrap中无法靠class自动实现,必须手动写CSS;因.modal非全屏、z-index易被覆盖、display依赖JS控制,且.modal-backdrop为独立节点,故需用position:fixed+100vh+足够z-index手动构建。
-
伪元素不渲染的首要原因是content属性为空或缺失,此时浏览器直接跳过渲染;即使写了::before/::after,若content为none、空字符串""(显式设置时合法)或未声明,则均不生成盒模型。
-
键盘方向键增减与step属性无关,因浏览器对number输入框的方向键行为有独立实现逻辑,默认每次增减1,不响应step值;需用JavaScript拦截keydown事件并调用stepUp()/stepDown()方法实现精准控制。
-
<metahttp-equiv="refresh">在多数场景下应禁用,因其会中断用户操作、破坏历史栈、导致重复提交;仅适用于静态公告页等无交互场景;推荐用fetch+setInterval实现可控的定时检查与刷新。
-
Bootstrap5.3+中需用ratio容器(如ratio-16x9)包裹图片并配合object-fit-cover,因img元素固有尺寸会覆盖aspect-ratio;旧版本须用padding-top技巧模拟比例,且需relative定位;cover裁剪填满,contain完整留白。
-
overflow-y:scroll为什么有时没效果直接加overflow-y:scroll却看不到滚动条?大概率是容器没设高度,或者内容根本没溢出。CSS滚动条只在「内容高度超过容器高度」时才可能触发,而scroll只是强制显示滚动条轨道(哪怕没内容可滚),但前提是容器本身得是个有明确高度的“盒子”。必须给容器设置height或max-height,比如height:200px;仅用min-height不行父元素不能是display:flex且未设align-
-
Canvas模拟局部放大需用鼠标/触摸事件获取坐标,裁剪源图区域并拉伸重绘;须节流(requestAnimationFrame)、控制canvas尺寸、适配移动端触点偏移及渲染质量。
-
能,但前提是模板内容中立而非样式绑定或结构锁死;需支持数据注入与结构解耦,避免硬编码、强版本语义和元信息耦合,优先选用构建阶段模板或SSG组件机制。
-
必须用<button>。它是触发动作而非纯导航,能确保无障碍访问、键盘操作一致性和表单正确包含;错误使用<a>或role="link"会导致语义混乱和交互异常。
-
浮动布局通过float实现多列排列,需清除浮动以防止父元素塌陷,常用overflow:hidden或伪类::after处理;li设为float:left并配合width、margin控制布局,结合box-sizing:border-box避免宽度溢出;响应式中通过媒体查询调整屏幕适配,如小屏下改为两列或堆叠显示。
-
禁用右键本质是拦截contextmenu事件而非真正禁用,仅能阻止默认菜单;内联oncontextmenu="returnfalse"最简捷,addEventListener配合e.preventDefault()更灵活;但JS禁用可被禁用脚本、快捷键、开发者工具等绕过,无法替代服务端防护。
-
absolute元素百分比宽度失效的根本原因是包含块无明确宽度;其宽度需相对于最近非static定位祖先计算,若该祖先宽度为auto则百分比无法解析。