-
HTML仅定义语义结构,CSS才负责排版;布局应基于display:flex/grid而非HTML标签,统一box-sizing:border-box避免盒模型误差,且父容器必须显式设置display属性才能启用子元素的布局指令。
-
用CSS隐藏滚动条需分浏览器处理:WebKit内核用.container::-webkit-scrollbar{display:none;},Firefox用scrollbar-width:none;或scrollbar-color:transparenttransparent;,均需配合overflow:auto或scroll才生效。
-
原生<inputtype="file">无法通过HTML属性限制最大文件数,multiple仅控制是否允许多选而非数量上限,必须用JavaScript在change事件中校验input.files长度并清空input.value来拦截超限。
-
<p>必须同时添加grid类才能启用网格布局,因为grid-cols-*仅设置grid-template-columns,不改变display属性;若父容器display为block或flex,则网格列定义无效。</p>
-
直接混用BEM和原子类会出事,因二者设计哲学冲突:BEM强调语义化与作用域隔离,原子类追求极致复用;混用导致样式不可追溯、class爆炸、重构难判断真需求。
-
Blob是JavaScript中表示不可变原始二进制数据的内置对象,是二进制数据容器,可由字符串、ArrayBuffer等创建,File是其子类;需用newBlob([data])构造,读取依赖异步方法如text()或arrayBuffer(),下载时常用URL.createObjectURL()生成临时链接。
-
<p>HTML模板中只能用<!---->注释,因解析器仅识别该格式;其他如//或//会被当作普通文本显示,可能污染DOM、破坏结构或引发XSS风险。</p>
-
浅拷贝通过只复制顶层引用、保留嵌套结构原地址实现可控隔离,适用于扁平数据、仅改顶层字段及性能敏感场景;常见写法如{...obj}、[...arr],但嵌套修改仍联动;需初始化时拷贝并配合不可变更新。
-
根本原因是CSS层叠规则生效,scoped仅通过属性选择器隔离组件内样式,无法阻止第三方全局CSS覆盖;第三方样式权重更高、加载更晚或重置基础标签导致覆盖。
-
JavaScript的try...catch仅捕获同步执行异常,不处理异步错误、语法错误、资源加载失败及Promise拒绝;需在调用处包裹且await异步操作,catch参数应命名避免覆盖Error,finally中避免return或throw。
-
不能。直接使用shadowRoot.innerHTML=htmlString会导致内联<style>和<script>逃逸至全局作用域,引发样式污染与XSS风险;必须通过DOMParser解析后,将<style>转为CSSStyleSheet并用adoptedStyleSheets注入,<script>需沙箱执行并重绑定this/window/document。
-
HTML本身不提供Base64编解码能力,必须依赖JavaScript的atob()/btoa()或FileReader;btoa()仅支持ASCII字符串,遇中文、emoji等会报InvalidCharacterError,正确做法是先用TextEncoder转Uint8Array再处理;嵌入图片时需严格匹配data:mime-type;base64,格式,确保MIME类型准确、无换行空格。
-
HTML模板需手动替换占位符并配置路径:修改loremipsum等示例内容,校准图片/脚本路径,处理JS动态渲染与JSON数据源,禁用file://直接打开,须用本地服务器调试。
-
trigger是Vue3响应式系统中负责派发更新的核心机制,由Proxy的set拦截器隐式调用,根据操作类型(SET/ADD/DELETE)触发对应依赖;它与triggerRef的区别在于:前者是内部函数作用于reactive/ref,后者是供开发者手动唤醒shallowRef响应的API。
-
必须在无法通过常规层叠规则覆盖样式时使用!important,典型场景包括:第三方库样式冲突、动态内联样式需强制覆盖、调试验证;它仅作用于单个属性,不改变选择器权重比较逻辑,且对继承无效。