-
绝大多数卡片列表场景该用auto-fit,但依赖固定列数对齐、动画或预留插槽时必须用auto-fill;auto-fit在卡片少时会拉宽列宽,auto-fill则可能产生隐形空列并受gap影响。
-
是的,head中默认script会阻塞渲染和后续JS执行;必须加defer或async才可避免,其中defer仅对外链脚本有效且保序执行,async则无序执行、适合无依赖脚本。
-
纯CSS轮播可用input[type="radio"]配合:checked实现显隐切换,或用transform:translateX()加animation实现滑动效果,需注意容器溢出隐藏、图片尺寸控制及用户交互暂停动画。
-
使用CSS伪元素::before和::after可为元素添加提示图标或文字,无需额外HTML标签。1.::before和::after通过content属性在元素前后插入内容,常用于添加装饰性图标或提示信息;2.必须设置content属性,否则伪元素不显示;3.利用::before可创建圆形问号图标,样式由CSS控制,保持HTML语义清晰;4.使用::after结合:hover可实现悬停显示提示框,需配合position定位;5.可引入字体图标如FontAwesome,通过Unicode字符显示专业图标,
-
position:relative套层失效因第三方组件内部的position:relative、transform等会创建新定位上下文,使absolute元素相对错误祖先;z-index失效因层叠上下文隔离或高值覆盖;top/left偏移因缩放或响应式单位;DOM时机错误因未等第三方组件渲染完成。
-
Chrome58以下不支持initial关键字,会导致整条CSS规则被忽略,应改用具体初始值(如background-color:transparent)并配合PostCSS处理兼容性。
-
微博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"])实现,避免依赖易变的文本内容。