-
微博Web分享接口旧版已下线,现仅支持weibo.jsSDK且需备案授权;个人静态页难以通过,推荐用service.weibo.com/share/share.php构造URL唤起客户端分享,但微信内会被拦截。
-
JavaScript状态管理是统一、可控、可预测地组织与更新应用中可变数据的方式,解决多组件共享状态、props钻取、更新不一致和调试困难等问题,核心在于明确状态范围、存储位置和变更方式。
-
用<ul>+<li>语义化结构实现群成员列表,配合<figure>包头像、<figcaption>包昵称,支持data-user-id传参、aria-label状态提示、contain:layoutstylepaint优化滚动性能,并预留在线状态样式扩展位。
-
清除浮动可解决父容器高度塌陷问题。常用方法包括:添加空元素并设置clear:both;使用::after伪元素结合display:table和clear:both(推荐);通过overflow、auto或display:flow-root触发BFC以包含浮动。其中display:flow-root和伪元素法更优,兼顾语义与兼容性,适用于现代开发。
-
UnoCSS配置更简洁的根本原因是属性化模式(Attributify)将class属性视为可解析DSL,无需预定义类名集合;它默认支持动态CSS生成,仅需配置shortcuts、rules和attributifyOptions等边界控制与语义映射。
-
HTML5表单需结合语义化结构、原生验证、CSS状态样式、ConstraintValidationAPI脚本控制、placeholder/datalist引导及移动端适配。
-
原生HTML无法实现多规格联动选择,必须配合JavaScript;关键在于HTML结构设计:用<fieldset>分组、<inputtype="radio">或<button>作为选项,添加data-spec和data-value属性,避免中文判断与硬编码映射。
-
let和const因TDZ与块级作用域禁止重复声明,var则函数提升且无块作用域导致变量泄漏;TDZ使未初始化前访问报ReferenceError,函数参数默认值中引用自身也受此限。
-
:has()是目前唯一能根据后代内容反向选择父级的原生CSS方案,但仅支持可选中子元素(不能匹配纯文本节点),需配合语义class或data属性使用;文本匹配应优先通过JavaScript添加class或直接用属性选择器(如[data-action="submit"])实现,避免依赖易变的文本内容。
-
现代浏览器自定义滚动条需分WebKit(Chrome/Edge/Safari)和Firefox两套方案:前者用::-webkit-scrollbar伪元素,仅对overflow溢出的块级容器生效;后者用scrollbar-width和scrollbar-color,且color仅在width为auto或thin时生效。
-
Html5-QRCode是省事、兼容性好、识别率够用的方案;jsQR仅解码,需额外处理视频流、权限、降级等数十行胶水代码,移动端易黑屏卡死且无文件上传fallback。
-
响应式表格小屏转卡片需语义打散并用flex重排,关键在为td添加data-label属性并通过媒体查询控制display值,保留表格结构以保障可访问性与SEO。
-
let和const均为块级作用域、不提升、不可重复声明,区别仅在于是否允许重新赋值;var因函数作用域和变量提升易引发闭包、作用域泄露等问题,应避免使用。
-
本文介绍一种高效、非递归但逻辑等价于递归的算法,将扁平的节点数组按parent-id关系构建成嵌套的树形结构,适用于文件系统、菜单、组织架构等场景。
-
支付页面需防误操作、保状态、抗重放、可访问:提交时禁用整个表单并设aria-disabled;服务端必须幂等校验;确认页须reset表单、移除监听器、replaceState;成功页订单号应入URLpath并服务端渲染,缓存头设为no-store。