-
localStorage操作必须用setItem()/getItem(),存对象需JSON序列化,注意5MB限制、无痕模式兼容性、storage事件仅跨tab触发、无自动过期机制需手动实现TTL。
-
不能。Less是编译时预处理器,无法读取运行时JS变量;需通过CSS自定义属性(--xxx)桥接,Less中用var(--x,@fallback)回退,JS通过setProperty动态修改。
-
Flex布局通过display:flex启用,核心是主轴与交叉轴的对齐控制。1.flex-direction设置主轴方向(row/column及其反向);2.justify-content控制项目在主轴对齐(flex-start至space-evenly);3.align-items定义交叉轴对齐方式(stretch至baseline);4.align-self允许单个项目覆盖align-items;5.flex-wrap决定是否换行(nowrap/wrap/wrap-reverse);6.多行时alig
-
break-inside:avoid仅在多列布局中对触发BFC的块级卡片容器生效,若父容器未设column-count/width、卡片非block/flow-root、含absolute/flex/grid或overflow:hidden,或浏览器为IE11,则会失效。
-
<p>最简两行Grid布局为display:grid;grid-template-rows:60px1fr;height:100vh;,Header固定60px,Main用1fr自适应并需overflow-y:auto防双滚动,IE11须改用calc(100vh-60px)。</p>
-
什么是CSS颜色分层,不是简单写几个--color-primary颜色分层本质是把颜色按语义+使用场景切开,而不是按色值归类。比如--color-primary不能只代表“蓝色”,它得明确回答:这个蓝用在按钮上?还是标题文字?还是禁用态背景?同一色相在不同语境下亮度、对比度、透明度都该不同。很多人直接定义--blue-500然后到处用,结果在深色模式下文字看不见,或在按钮上和背景对比不足——问题不在变量名,而在没分层。必须拆开的三层:基础色、语义色、场景色基础色只存原始色值(如#2563eb),不
-
float在小屏下不能仅靠mediaquery设为none,因其无天然回退机制,需同步清除浮动、重置父容器清除方式并处理兄弟元素的clear;推荐改用flex或grid布局替代。
-
应优先使用功能检测而非解析userAgent,仅在必要时谨慎解析并交叉验证;Chrome/Edge/Firefox/Safari版本提取需按优先级顺序正则匹配,并结合navigator.vendor/product辅助验证。
-
HTML本身不能直接实现SSR,SSR的核心是服务端动态生成含真实内容的HTML字符串并返回,需通过Node.js等环境调用框架渲染API(如renderToString)实时执行,而非仅修改静态index.html文件。
-
用absolute+负top/right易错位,因负值硬编码且受父容器内边距、缩放、transform等影响;必须给父元素设position:relative,并用transform:translate(50%,-50%)精准锚定右上角,配合z-index≥99和避免overflow:hidden。
-
watch返回的stop函数必须手动调用以防止内存泄漏,不同于选项式API的自动清理;推荐在onUnmounted中调用,watchEffect同理;动态场景需先停止旧监听再启动新监听。
-
border-radius不生效主因是样式优先级、display类型或溢出干扰。需检查选择器权重,使用inline-block或block布局,确保无高优先级覆盖,并通过overflow:hidden和background-clip正确裁剪背景,最终用开发者工具验证计算样式。
-
transition-timing-function控制动画速度曲线,ease实现缓入缓出适合多数UI交互,默认值为cubic-bezier(0.25,0.1,0.25,1);linear保持匀速常用于旋转加载;cubic-bezier()可自定义曲线实现精细控制,如回弹效果,提升动效专业感。
-
CSSPaintAPI画圆点必须通过Worklet注册,不能直接写CSS或用canvas模拟;需将painter类放在独立JS文件中,用CSS.paintWorklet.addModule()异步加载后才能生效。
-
缺一不可,漏掉stroke()就什么都看不见;因为moveTo()和lineTo()仅构建路径指令,不触发绘制,必须显式调用stroke()才真正描边显示。