-
:empty只匹配完全无子节点(含空白文本)的元素;换行、空格均会使其失效,而:blank虽可匹配纯空白但仅Safari支持,生产环境需用JS判断textContent.trim()===''。
-
registration.index.add()仅登记URL而不保证离线可访问,需手动精确缓存HTML、确保路径完全一致、服务端允许缓存,并在ServiceWorker的fetch事件中显式处理navigate请求。
-
WebAudio中connect()有三种形式:节点连节点、节点连参数、节点连目的地;混用会导致静音或报错;多路输入自动相加需控幅;所有节点须属同一AudioContext;start()前必须完成connect()且链路终点为destination。
-
Map比普通对象快在支持任意类型键且哈希表实现O(1)查找,而对象仅支持字符串/Symbol键,非字符串键易因toString()冲突;正确序列化多参数需用JSON.stringify或模板字符串;防缓存爆炸应加LRU限制与参数稳定性评估。
-
HTML原生required属性仅对input、select、textarea生效,需避免在自定义组件或hidden/button类型中使用;submit事件被preventDefault拦截时须手动调用checkValidity();JS提交表单(form.submit())不会触发校验,必须显式调用checkValidity()或reportValidity()。
-
mask-image没生效主要因三原因:元素无宽高、未设mask-mode或格式不兼容、inline元素未改display;需双写-webkit-mask-image适配Safari;避免与opacity混用。
-
通过监听video元素的loadedmetadata事件可准确获取视频时长,结合preload="metadata"提升加载效率,并利用duration属性获得秒数后格式化为分:秒显示,需注意处理无效资源或直播流导致的NaN与Infinity异常情况。
-
移动端瀑布流最优解是Flex双列+高度预估+异步修正:用宽高比预估初始高度,图片加载后通过style.height和requestAnimationFrame微调,左右列独立维护高度并动态分配新项。
-
Qt的QWebSocket和QWebSocketServer支持跨平台运行(Windows/macOS/Linux),但实际通信成败取决于网络可达性、协议一致性及连接生命周期管理,常见问题包括构建配置遗漏websockets模块、端口冲突、URL协议不匹配、SSL模式混用、防火墙拦截及多线程访问未加锁等。
-
border-radius生效需配合background-color或border;img加圆角须自身设置并设display:block;box-shadow不随圆角变形,需overflow:hidden或filter:drop-shadow();移动端小圆角发虚宜用偶数像素或50%。
-
不能。flex-shrink:0单独使用无法修复移动端图片压缩变形,因缺失flex-basis导致初始尺寸失控,须配合flex:00auto、width:auto、height:auto三者协同。
-
外部样式表提升可维护性需配合合理组织:集中管理、命名规范(如BEM)、避免!important、统一媒体查询、缓存优化、按功能拆分文件,并用构建工具替代@import。
-
scroll-snap-type在移动端不生效需同时满足:父容器设overflow-x:auto/scroll、scroll-snap-type设于滚动容器、有明确宽度;子项用scroll-snap-align:start;iOS需加-webkit-overflow-scrolling:touch;active状态推荐用IntersectionObserver监听。
-
用Map实现撤销/重做,核心是将其作为“操作-快照”索引层,键为操作ID或类型序号,值存深拷贝状态、diff摘要或命令对象,避免引用污染;更新严格匹配用户显式意图,还原时协同past/future指针精准定位。
-
animation-timing-function通过速度曲线控制CSS动画节奏,不改变总时长;支持ease、linear、ease-in/out、steps()及cubic-bezier()自定义,需符合[0,1]参数范围,且transition与animation共用该属性。