-
移动端过渡动画卡顿的根本原因是重绘开销大,应仅用transform和opacity触发硬件加速,明确声明过渡属性,结合媒体查询按设备降级时长与效果,并适配触控操作与渲染瓶颈。
-
商品卡片应使用语义化HTML结构:用<article>包裹,标题用<h3>,价格等关键字段用带语义类名的标签(如<spanclass="price">),主图<img>必须含描述性alt属性,促销标签用<spanrole="note">,按钮统一为<buttontype="button">;CSS布局优先用flex实现单列流,大屏再切grid,禁用固定高度,图片区域设aspe
-
Tailwind中before/after伪元素必须显式声明content,如before:content-[""],否则无效;所有样式需加before:/after:前缀;content值需在配置中扩展;定位需宿主relative+伪元素absolute及z-index控制。
-
柯里化是将多参数函数转换为一系列单参数函数的过程,通过闭包保存已传参数,待参数满足时执行原函数;支持部分调用、占位符及显式触发,提升函数组合与复用能力。
-
用Props实现表格排序和过滤的核心是状态上提:父组件管理sortBy、sortDir、filterText等状态并传给子组件,子组件仅渲染和触发onSort等回调,不维护状态;排序过滤分页顺序为先过滤、再排序、最后分页,逻辑置于父组件或自定义Hook中,子组件只接收displayData和total。
-
可通过四种CSS方法创建大圆形元素:一、div+border-radius:50%;二、SVG的circle元素;三、伪元素:before/:after;四、clip-path:circle()裁剪。
-
最简写法是给图片容器设background:rgba(0,0,0,0.4)并配合position:relative;需注意z-index层级、伪元素content必写、移动端加transform:translateZ(0)触发GPU渲染。
-
JavaScript中var声明会提升并初始化为undefined,而let/const仅提升声明、不初始化,访问时触发TDZ报错;var是函数作用域,let/const是块级作用域,for循环中let每次迭代创建新绑定,避免闭包陷阱。
-
核心是自动转义插值内容防XSS,如将<转为<,并提供显式不转义语法如{{{}}}供安全可控的HTML输出。
-
HTML压缩需五步:一、删空白与注释;二、压缩内联CSS/JS;三、移无用属性与标签;四、用html-minifier-terser批量处理;五、启用Gzip/Brotli服务端压缩。
-
HTML5通过input类型、required、minlength、maxlength、min、max和pattern等属性实现内置表单验证,结合placeholder和title提示,可高效完成常见前端校验,无需JavaScript。
-
在angular.json的styles数组中引入的CSS文件全局生效,注入<head>,优先级高于组件样式,但不影响innerHTML渲染内容和ShadowDOM组件。
-
text-size-adjust是iOSSafari中默认启用的CSS属性,会强制放大小于约16px的文字,导致布局错位、行高异常;应设为-webkit-text-size-adjust:100%并配合固定line-height与合理font-size精确控制排版。
-
右上角“塌陷”因border内切导致,应抽离元素用absolute定位+border-bottom/border-left外撑;伪元素transition需用opacity+transform而非display;clip-path直观但Safari旧版兼容差。
-
面包屑导航必须用<nav>包裹并配aria-label,内部用<ol>嵌套<li>保证语义与顺序;BEM类名须严格对应层级,分隔符优先用伪元素实现,响应式需保留首尾及当前页上下文。