-
max-width:100%单独对浮动图片无效,因浮动元素脱离文档流,父容器高度坍缩且包含块可能非预期父级;须配合BFC(如overflow:hidden或display:flow-root)才能生效。
-
要获取JavaScript对象所有原型链上的属性,需遍历原型链并收集每层的属性,同时避免污染和性能问题。1.使用Object.getPrototypeOf()沿原型链向上遍历,结合Object.getOwnPropertyNames()收集每个原型的属性,并用Set去重,最终转为数组返回;2.避免原型链污染的方法包括:不直接修改内置对象原型、使用Object.create(null)创建无原型对象、用Object.freeze()或Object.seal()锁定对象、对外部数据严格校验、以及通过Objec
-
纯HTML实现返回顶部需用<ahref="#top">指向带id="top"的顶部元素(不可设在<body>),配合html{scroll-behavior:smooth}启用平滑滚动,固定按钮需设z-index≥100并处理iOS兼容性;JS仅在路由、IE兼容或动态偏移时必要。
-
用position:fixed可纯CSS实现弹窗,通过checkbox控制显隐:遮罩层fullview固定定位,弹窗用top:50%/left:50%/transform居中,z-index分层,label模拟开关,兼容性好且无需JS。
-
JavaScript通过document.cookie操作Cookie,需正确拼写属性(如Max-Age优先于Expires)、注意分隔符,HttpOnly只能由服务端设置,读取需解析字符串,删除需匹配原Path并设过期时间。
-
答案:使用float可实现固定宽度多列布局,通过设置float:left、指定宽度并清除浮动来并排排列元素。示例中左列200px,右列300px,父容器宽520px,用overflow:hidden清除浮动;如需间距,右列加margin-left并增加容器宽度。扩展至多列时需确保总宽不溢出,推荐配合box-sizing:border-box提升稳定性,适用于兼容性要求高的场景,现代开发更倾向Flexbox或Grid。
-
环形菜单旋转展开时元素飞出去了?检查transform-origin是否设在圆心环形菜单的“飞出去”本质是旋转中心点错位。每个菜单项必须围绕同一个圆心旋转,否则视觉上会散开或偏移。常见错误是直接对li或button设置transform:rotate(),但没统一设置transform-origin。圆心坐标必须是相对于该元素自身的偏移,比如菜单项宽高都是40px,圆心就在transform-origin:20px20px更稳妥的做法是让所有菜单项父容器(如.menu-ring
-
textarea聚焦时默认光标在末尾,需监听focus事件并调用setSelectionRange(0,0)将其移至开头;input[type="text"]为单行,无“第一行”概念,光标默认已在开头。
-
Monad是封装值并提供of和chain操作的容器,用于处理上下文中的计算。它通过Maybe避免空值错误,Either处理分支逻辑,提升代码可组合性与安全性,类似Promise的链式处理机制。
-
Grid布局中区域顺序由grid-area显式指定而非HTML顺序决定:通过grid-template-areas定义命名区域,再用grid-area将元素分配至对应区域;或直接用grid-area四值语法精确定位行列线坐标,二者均无视DOM顺序且grid-area会覆盖grid-row/column设置。
-
本地图片不显示主因是file://协议限制或路径错误;浏览器以HTML文件位置为基准解析background-image相对路径,须用url()函数包裹,配合background-size等属性,并启动本地HTTP服务(如python-mhttp.server)才能正常加载。
-
JavaScript模块是ES6引入的代码拆分机制,支持import/export语法实现静态依赖管理与作用域隔离,具备严格模式、无全局污染、tree-shaking优化等特性。
-
本文介绍在不创建中间副本的前提下,以单次遍历完成数组逆序.map()操作的高性能写法,并对比常规方法的性能瓶颈与替代策略。
-
BEM能防CSS类名冲突,因其通过块-元素-修饰符三段式命名(如.header__title--large)实现天然隔离;需配合ESLint、Stylelint等工具强制约束,禁用后代选择器与ID/标签选择器,并匹配严格正则;与CSS-in-JS、ShadowDOM不冲突,可共存互补;超小项目或动态样式场景则不宜硬套。
-
浅拷贝复制对象第一层属性,引用类型共享内存地址,修改嵌套对象会影响原对象,常用方法有Object.assign、扩展运算符等;深拷贝递归复制所有层级,生成完全独立的新对象,修改副本不影响原对象,但性能开销大,可用JSON.parse(JSON.stringify())或_.cloneDeep()实现,后者更灵活且支持复杂类型。