前端技术文章
-
核心是用CSS变量实现多租户皮肤切换:在:root定义语义化变量(如--primary-color),按租户动态注入style块或JS设置document.documentElement.style,避免硬编码、多套CSS或字符串拼接;注意单位处理、作用域控制及SSR租户识别。248 收藏 -
WebSocket不能直接传文件,必须用“HTTP上传+WebSocket推送”混合方案,因浏览器File对象无法原样发送、缺乏校验与断点续传机制、丢失multipart元数据,且服务端需额外实现流控与状态管理。448 收藏 -
使用CSS的absolute定位与:hover伪类结合,通过relative容器定位提示气泡;2.HTML结构包含图片与隐藏的气泡元素;3.CSS设置opacity与visibility控制显示,transition实现平滑过渡;4.可添加::after伪元素制作小三角增强视觉效果;5.优化位置、层级与交互适配多场景。173 收藏 -
acid滤镜不存在,酸性风格需hue-rotate()、saturate()、contrast()高频抖动+动画控制,配合形变与遮罩,并依赖深色基底。274 收藏 -
BEM本身不解决第三方组件库样式冲突,需通过wrapperblock隔离;应避免硬加项目前缀破坏其内部选择器链,而用属性选择器、:deep()或:global()局部覆盖,并注意样式注入顺序与优先级。280 收藏 -
prefetch资源缓存在浏览器网络栈临时托管区,非独立缓存类型;其是否进入disk/memorycache取决于服务端响应头(如Cache-Control),而非prefetch标签本身。338 收藏 -
JavaScript创建自定义事件需用CustomEvent构造函数创建事件对象并调用dispatchEvent触发,监听时通过e.detail获取数据;事件传播分捕获(window→目标父级)、目标、冒泡(目标→window)三阶段,可用stopPropagation()等控制传播。286 收藏 -
JavaScript循环选择取决于数据结构和控制逻辑:次数确定或需索引用for;条件驱动且次数不定用while;需至少执行一次用do...while;遍历值优先for...of,避免for...in用于数组。426 收藏 -
createObjectStore创建的是键值对集合而非传统表,需通过keyPath或autoIncrement定义主键,并用索引支持字段查询;keyPath和autoIncrement创建后不可更改,索引可后续添加。240 收藏 -
readonly属性允许表单提交其值,disabled属性则阻止提交;前者适用于需保留值的只读展示(如用户ID),后者适用于临时禁用且不提交的控件(如未同意协议时的提交按钮)。115 收藏 -
blockquote必须闭合,否则浏览器自动修复会导致布局错乱、footer消失、cite失效及屏幕阅读器朗读异常;cite属性须为完整URL,专标来源而非作者;footer与cite是语义闭环必备,须正确嵌套并适配深色模式样式。371 收藏 -
逻辑赋值运算符&&=、||=、??=可简化条件赋值:1.&&=在左侧为真值时赋值,适用于有值才更新;2.||=在左侧为假值时赋值,常用于设置默认值;3.??=仅当左侧为null或undefined时赋值,避免覆盖0或空字符串等合法值,提升代码安全性与可读性。407 收藏 -
亚像素缝隙源于margin/top等布局属性在计算中被四舍五入,而transform属合成层操作,可保留0.1px级精度,真正实现像素对齐。475 收藏 -
闭包记忆化通过私有缓存将递归DP时间复杂度从指数级降至线性,关键在于闭包内自引用、可靠键生成(如${n}|${capacity})和缓存管控(上限/LRU)。105 收藏 -
创建HTML文本框使用<inputtype="text">,通过name、value、placeholder、maxlength等属性设置名称、默认值、提示文字和输入限制,并可结合form表单提交数据。407 收藏