-
ID选择器会直接破坏BEM权重平衡,因其权重为1,0,0,远超BEM要求的0,1,0,导致后续所有类名样式难以覆盖;它违背BEM“扁平化、可复用”的核心前提,使修饰符和状态切换失效。
-
纯CSS可通过伪类(:hover/:focus/:checked/:disabled)判断元素状态,结合伪元素(::before/::after)注入动态内容,利用data属性存储文案并用attr()读取,实现无需修改HTML的状态化标签展示。
-
hover触发二维码显示的DOM结构怎么组织直接用title属性或纯CSS::after伪元素生成二维码不可行——它们不支持嵌入图片或SVG,且无法控制尺寸和交互行为。正确做法是预先加载二维码(或),再通过CSS控制显隐。推荐结构:扫码关注。外层qrcode-trigger是悬停区域,内层qrcode-popup是浮层容器,避免脱离文档流导致布局跳动。不要把直接放在标签里再hover——点击区域和悬停区域可能不一致不要用display:none
-
子元素的margin-top会让父容器一起往下掉是因为相邻块元素垂直margin会塌陷,且父容器未形成BFC时其上边界与子元素margin-top相粘连;overflow:hidden通过触发BFC隔离内部布局来阻止塌陷,但可能截断溢出内容。
-
直接在index.html的</body>前插入客服SDK脚本并确保HTTPS协议、HTTP服务运行、第三方Cookie允许,是第三方客服嵌入的核心要求。
-
MiniCssExtractPlugin需配合loader分支、publicPath配置和导入顺序控制:开发用style-loader支持HMR,生产用MiniCssExtractPlugin.loader抽离CSS;publicPath决定CSS内相对路径解析,子目录或CDN需显式设置;多处import同一CSS引发Conflictingorder警告,应统一入口引入或splitChunks归并;SCSS/LESS等预处理器同样需替换loader首项。
-
Elements面板是实时操控DOM的操作台,右键检查可快速定位并双击编辑元素,拖拽调整顺序,Console中用$0或querySelector可高效批量修改,但需注意CSS/JS覆盖、ShadowDOM隔离及file://协议限制。
-
现代项目应优先用display:flow-root触发BFC自动包裹浮动,语义清晰、无副作用;.clearfix仅是兼容旧浏览器的过渡方案,且clear:both加在父元素上无效,因clear只作用于自身定位,不改变父容器布局上下文。
-
浏览器原生不支持HTML元素直接通过speech属性启用语音识别,必须使用JavaScript的SpeechRecognitionAPI手动实现;input和textarea需绑定onresult事件并将transcript写入value,且受限于HTTPS、权限、浏览器兼容性等硬性条件。
-
使用qrcode.js一行生成二维码,需确保脚本在</body>前加载或包裹在DOMContentLoaded中,设置width≥200、margin≥20px、correctLevel为M级,canvas导出需适配devicePixelRatio并手动绘制logo。
-
findLastIndex更可靠因其规范定义逆向遍历逻辑,从末尾起查首个匹配项即返回,避免手写循环的边界错误、索引错位及语义混淆,天然适配“最后一个生效操作”场景。
-
Less中需直接在CSS声明中使用env(safe-area-inset-top,0px),不可赋值给变量或参与运算;兼容旧设备应按padding-top:20px;→constant();→env()顺序书写,fallback值0px必不可少。
-
不能。WindiCSS构建时扫描源码提取静态class字符串生成CSS,需接入Vite等构建环境并配置include路径;动态class需注释或extract显式声明,且不支持@apply和运行时HTML分析。
-
HTML5原生不支持RTSP,iOS尤其受限;可行方案仅服务端转HLS或WebRTC网关中转,或改用原生App通过AVFoundation/FFmpeg实现低延迟播放。
-
HTML5中实现文本强制换行有五种方式:一、用<br>标签;二、设white-space为pre/pre-wrap;三、用
配合white-space:pre;四、用word-break/overflow-wrap断词;五、用flex-wrap间接控制换行。