-
padding是CSS盒模型中控制内容与边框间距的属性,用于提升元素的可读性和视觉舒适度;可通过单一值、两个值、四个值或单独设置四边的方式定义,常用单位为px、%、em;例如button{padding:12px24px}可使按钮文字在垂直方向留12px、水平方向留24px内边距,增强美观性与可用性。
-
通过监听unhandledrejection事件可捕获未处理的Promise异常,需处理event.reason的类型多样性并封装错误信息,结合统一上报机制使用navigator.sendBeacon等方式提交至监控系统,保障前端稳定性。
-
视差滚动通过不同元素以不同速度移动创造深度感,常用CSS的background-attachment或JavaScript控制transform属性实现。1.使用CSSbackground-attachment:fixed适用于背景图,简单高效但控制有限;2.JavaScript监听scroll事件并结合transform属性可实现更复杂效果,同时推荐使用requestAnimationFrame优化性能;3.IntersectionObserver用于减少非视口内元素的计算开销;4.响应式设计中可通过媒
-
尾调用是函数最后一步调用另一函数且无额外计算,如阶乘函数中递归调用自身并直接返回结果,ES6通过尾调用优化防止栈溢出。
-
防抖适用于用户操作停止后再执行,如搜索框输入;节流适用于固定频率执行且需及时响应,如滚动监听。二者均需处理this绑定、参数传递及定时器清理,推荐使用Lodash或React自定义Hook。
-
响应式表格布局的核心是适配不同屏幕,确保可读性。通过设置width:100%和table-layout:fixed实现流动宽度;小屏幕下利用媒体查询将行转为堆叠卡片,配合data-label显示列名;或采用外层容器横向滚动,适合列多场景。选择方案需权衡内容与体验。
-
文字和图标对不齐的核心原因是vertical-align默认按baseline对齐,而图标底边与文字基线不一致;应确保元素为inline或inline-block,改用vertical-align:middle,或直接使用display:flex+align-items:center实现居中。
-
使用CSSGrid布局可快速创建响应式网格,首先设置容器display:grid,再用grid-template-columns定义列宽如1fr1fr1fr实现等分布局,并通过gap设置间距;子元素自动按序排列;结合repeat(auto-fit,minmax(200px,1fr))可实现自适应响应式网格。
-
使用CSSGrid可灵活实现多行多列布局,首先通过display:grid定义容器,并用grid-template-columns和grid-template-rows设置行列结构,配合gap设定间距;接着利用grid-column和grid-row让元素跨越多个轨道,或使用span指定跨度;复杂布局推荐grid-template-areas命名区域,提升可读性;响应式设计可用repeat(auto-fit/minmax())自动调整列数;合理组合这些属性即可高效构建二维布局。
-
width/height不生效主因是display类型、包含块高度缺失及box-sizing影响:行内元素需设inline-block/block;height百分比需父元素有明确height;border-box可避免尺寸溢出。
-
TV浏览器中应优先使用performance.timing和performance.getEntriesByType('paint')测加载渲染耗时,注意判空、fallback及buffer管理;console.time()不准因高精度计时器被降频,需改用performance.now()打点或帧率统计;无DevTools时依赖performance.getEntriesByType('resource')并确保跨域资源带Timing-Allow-Origin头;第三方SDK需禁用自动采集、手动上报并轮询
-
JavaScript中的class本质是构造函数的语法糖,底层仍生成普通函数并挂载到prototype上,不改变原型继承机制,typeof返回"function",不支持变量提升,静态方法挂类本身,实例方法挂prototype。
-
最推荐方式是navigator.clipboard.writeText(),现代浏览器均支持,需HTTPS或localhost安全上下文,必须用户触发;旧浏览器降级用document.execCommand("copy")。
-
前端开发中JavaScript跨浏览器兼容性问题需通过工具与策略解决。1.ES6+语法在旧浏览器如IE中不支持,可用Babel转译为ES5;2.DOMAPI差异可通过polyfill补全,如core-js实现Promise、fetch等;3.使用特性检测而非用户代理判断API支持,确保代码健壮性;4.构建流程中配置@babel/preset-env和目标浏览器范围,按需转译与加载,减小体积;5.结合Webpack/Vite与Babel,持续测试主流平台,有效控制兼容性问题。
-
应使用rgba()或hsla()设置背景透明度,而非opacity;前者仅影响背景色,后者使整个元素及子元素变透明,导致内容发灰。