-
必须用linear才能匀速,否则默认ease会导致跑马灯卡顿;位移终点须为-100%或容器宽负值以实现无缝;需复制内容并紧挨拼接;iOSSafari需加translateZ(0)规避渲染bug。
-
应采用类选择器统一定义公共样式,提取为语义化类名如.text-primary、.btn-sm;支持多类组合使用;遵循BEM命名规范避免冲突;通过CSS自定义属性管理可复用值以提升可维护性与主题切换能力。
-
:enabled选择器用于选中未设置disabled属性的表单元素,使其可被用户操作。它能匹配input、textarea、select、button等可用状态的表单元素,并为其应用样式,如添加边框、背景色或改变鼠标指针。通过与:disabled、:hover、:focus等伪类配合,可实现动态视觉反馈,提升表单交互体验。例如,注册表单中提交按钮初始禁用,填写完成后启用,CSS自动切换样式,无需额外类名控制。
-
必填项需同时满足语义、视觉、交互三要素:用required属性触发原生校验,配合::after星号提示和aria-required增强可访问性,服务端必须同步校验。
-
用CSS变量定义阴影应语义化命名(如--shadow-card)、全局挂载于:root,通过var(--shadow-card)调用并设fallback;多层阴影存为完整字符串,避免拆分拼接;注意IE不支持,且勿在rgba中嵌套calc()。
-
本文介绍如何使用纯JavaScript实现基于多组复选框的精准产品筛选功能,支持在单个data-*属性中存储多个空格分隔值(如data-color="redwhiteblue"),并按“所有选中条件必须同时满足”的逻辑动态显示匹配的产品项。
-
flex-wrap:wrap生效需同时满足容器宽度受限、子项设min-width或flex-basis;推荐用minmax()+repeat(auto-fit,...)替代calc(),IE11需降级为媒体查询或inline-block。
-
:not(:last-child)是最直接兼容的方式,适用于同级元素样式排除;:nth-last-child(n+2)更稳定但IE8不支持;混合标签应优先用:last-of-type;动态场景推荐类名或JS兜底。
-
原生HTML无法实现多规格联动选择,必须配合JavaScript;关键在于HTML结构设计:用<fieldset>分组、<inputtype="radio">或<button>作为选项,添加data-spec和data-value属性,避免中文判断与硬编码映射。
-
火狐浏览器需手动启用HTML5支持:一、在about:config中启用media.mediasource.enabled、webgl.enable-for-all-sites和dom.webaudio.enabled;二、禁用Flash插件并允许自动播放;三、开启WebComponents、H.264硬件解码等实验性特性;四、修改UA字符串声明HTML5就绪;五、删除mimeTypes.rdf等缓存文件并启用硬件加速。
-
PointerEvents不能简单替代MouseEvent/TouchEvent,需显式处理事件流、preventDefault()、pointerType判断及touch-action;pen设备必须用getCoalescedEvents()保障书写流畅;降级需分层检测支持度并避免事件重复监听。
-
AtomicsAPI仅支持SharedArrayBuffer上的整数/浮点数原子操作,无法替代锁或消息机制处理复杂状态同步;必须用相同视图类型访问共享内存,且需确保跨域隔离启用。
-
根本原因是字符编码未对齐,需确保HTML声明、HTTP头、文件保存、传输编码均为UTF-8;innerHTML插入时避免双重转义;HTML转义与URL编码不可混用;零宽字符等需特殊处理。
-
em和rem让盒子大小“跟着字体跑”是因为em相对父元素font-size、rem相对根元素font-size,二者变化会同比缩放width等属性;差异在于em参考系随嵌套变动易失真,rem只依赖html字号更稳定。
-
navigator.maxTouchPoints不可靠,无法准确识别触控能力;应通过事件监听(如touchstart、pointerdown)动态检测真实输入方式并实时调整UI。