前端技术文章
-
HTML表单提交不会触发跨域限制,因其本质是导航请求而非AJAX;但提交后无法通过JS获取响应数据,需改用fetch并配合CORS或iframe方案(不推荐)。360 收藏 -
:active无反应的根本原因是它仅在鼠标/触控按下未松开的极短窗口期生效,非状态记录而是动作响应;需满足元素可交互、伪类顺序正确、样式显式声明三条件。360 收藏 -
box-shadow不影响布局,因其仅作用于视觉层、不参与文档流计算,不改变元素尺寸(如offsetWidth、getBoundingClientRect),也不会增加实际占用空间。360 收藏 -
绝对定位多列不重叠需按内容最大宽度设列宽并加间隙,left用累计偏移计算,父容器须设height防塌陷,IE11避免混合单位calc()。359 收藏 -
Less变量需加模块前缀(如@btn-primary-bg)避免命名冲突,声明须带分号,注意引入顺序;.mixin()适合动态样式,.extend()用于固定样式合并;函数操作HSL空间,慎用嵌套;变量需同步为CSS自定义属性以联动JS。359 收藏 -
用@keyframes实现云朵飘动需设translateX(-100%)无缝循环,配合will-change:transform触发GPU加速、linear缓动、overflow:hidden防白边;云形用border-radius组合或clip-path绘制;分三层z-index模拟景深,各层duration/opacity/位移范围不同;须响应prefers-reduced-motion降级。359 收藏 -
discarded状态无法被JavaScript捕获,唯一可靠保存时机是freeze事件和pagehide且persisted===true;还原需结合pageshow.persisted、localStorage时间戳及navigation类型综合判断冷启动与热恢复。359 收藏 -
WeakSet不能防止脚本注入,仅能非侵入式追踪已授权DOM元素引用以避免内存泄漏;它不参与授权决策,须配合严格校验与防御性操作,且不可替代XSS根本防护措施。359 收藏 -
CSS的border-spacing创建的间隙不属于任何元素,无法直接设置背景色;但可通过双box-shadow模拟悬停时行间距的着色效果。359 收藏 -
Less混合器无法返回值,需通过@_result变量加!important在调用处显式获取结果;适用于单次计算,不支持链式调用或@media内动态计算。359 收藏 -
禁用user-scalable=yes是解决移动端浮动错位的关键,因其放大缩放时亚像素误差导致换行与间隙;应改用现代布局(如flex/grid)替代float。359 收藏 -
<scriptsetup>是Vue3.2+官方推荐的编译时语法糖,简化CompositionAPI使用、提升类型推导精度与性能;需用ref/reactive创建响应式数据,props/emits通过defineProps/defineEmits声明,组件方法需defineExpose暴露,组合式API需显式导入。359 收藏 -
必须在服务端用bleach.clean()白名单过滤HTML,前端净化仅为补充;禁用|safe直接输出,需显式配置tags、attributes及protocols;禁止strip_tags/正则等不可靠方案;属性值须二次转义;富文本白名单须按业务最小权限控制。359 收藏 -
JavaScript模拟私有状态有三种主流方式:闭包封装(构造函数内声明变量并暴露方法)、工厂函数(返回对象,语义清晰)、WeakMap(键为实例,支持原型复用且垃圾回收友好),但均为约定式保护,新项目应优先使用ES2022私有类字段#field。359 收藏 -
绝对定位元素默认不撑开宽度是因为脱离文档流后width按内容收缩(shrink-to-fit),而非占满父容器;max-width仅作上限约束,需配合无双侧定位、white-space控制及内容自然换行状态才能生效。359 收藏