-
inline-block通过使元素并排排列且保留宽高,替代float实现布局,避免高度塌陷,无需清除浮动,配合font-size:0等方法可消除间隙,支持vertical-align对齐,相比float更易管理,适用于兼容老浏览器的轻量级场景。
-
border总是占据空间,是否计入width/height由box-sizing决定:content-box下不计入,总宽=width+padding+border;border-box下计入,总宽恒等于width。
-
移动端文字强制不换行需用white-space:nowrap、word-break:keep-all和overflow:hidden组合;单行省略还需width、overflow:hidden与text-overflow:ellipsis三者缺一不可,且元素需为block或inline-block。
-
滚动文字逐字显现本质是字符级定时插入,需用JS将字符串转为Unicode安全数组并以requestAnimationFrame或带时间戳的setTimeout逐个写入DOM,避免split('')导致emoji等乱码。
-
本文详解如何将图片设为Canvas背景,并确保其在窗口缩放时保持比例、居中显示,同时兼顾后续绘图的响应式适配。
-
async/await是Promise的语法糖,async函数必返回Promise(如return42→Promise.resolve(42)),await仅在async函数内有效,会暂停执行并等待Promiseresolve,错误需用try/catch捕获,并发请求应使用Promise.all而非连续await。
-
箭头函数省略大括号时隐式返回表达式结果,加大括号后须显式return,否则返回undefined;返回对象字面量需用小括号包裹以避免被解析为函数体。
-
最简跳转用<ahref="...">,避免href=""或#;新标签页需target="_blank"加rel="noopener";JS跳转优先onclick返回false拦截,慎用window.location.href赋值;location.replace()不保留历史,assign()等同点击链接;SPA中用Link/<router-link>而非裸<a>。
-
表单提交后页面刷新需调用event.preventDefault()阻止默认行为,或配置action指向后端;务必为控件添加name属性,声明UTF-8编码,后端校验内容并防刷。
-
字体大小未生效通常是CSS优先级、继承中断或元素限制所致;需检查父元素font-size:0或line-height:0、单位匹配性、display属性、伪元素content及选择器权重。
-
答案是需求分析先行,而非直接选择i18n库。前端国际化需先明确语言覆盖范围、复数规则、RTL支持等实际需求,再选型如react-i18next或formatjs等工具,避免后期重构。
-
父容器hover时子行变暗、子行自身hover时恢复显示,核心是利用CSS层叠与:hover优先级,通过.parent:hover>.child设opacity、.child:hover显式设opacity:1实现,推荐用opacity而非filter,注意避免hover断层与兼容性问题。
-
IndexedDB可存储结构化数据并支持索引查询,通过open创建数据库和对象仓库,使用事务进行增删改查,结合索引与游标实现复杂查询,并在离线时缓存操作待网络恢复后同步。
-
Flexbox与媒体查询结合可实现响应式布局。通过display:flex启用弹性布局,利用flex-direction、justify-content、align-items和flex-wrap控制子元素排列与对齐;结合@media断点(如max-width:767px适配手机,min-width:768px适配平板),在不同屏幕尺寸下调整flex-direction或flex-basis,使布局自适应。例如卡片布局中,大屏使用flex-wrap:wrap和flex:11300px实现多列分布,小屏通过
-
使用:not(:last-child)可选中除最后一个子元素外的所有同级元素,常用于为列表项添加分隔线或间距时排除末尾元素;例如li:not(:last-child){border-bottom:1pxsolid#ccc;}可为每个列表项下方加边框,但最后一项不加,使界面更整洁。该选择器基于父元素中的位置判断,若需按标签类型排除末项,应改用:not(:last-of-type)。