-
DOM是浏览器提供的JS与HTML交互的接口,将HTML解析为可操作的对象树;常用方法包括getElementById、querySelector等;修改内容优先用textContent,事件监听须用addEventListener并注意函数引用。
-
必须用timeout参数兜底,否则低性能设备或复杂页面下可能永远等不到空闲;回调中需通过deadline.didTimeout区分触发原因,并据此调整执行策略。
-
port.start()并非开启长连接的方法,而是启用MessagePort消息接收队列的必要操作,需在获取port后显式调用以开始接收消息,尤其在未设置onmessage时;它属于MessageChannel通信机制,不涉及网络连接。
-
应使用:enabled伪类选择实际可交互的表单控件,而非仅依赖元素名或[disabled]属性选择器;它动态反映浏览器运行时状态,适用于button、input(非hidden)、select、textarea等表单元素,不适用于div、span等非表单元素。
-
本文讲解如何在响应式菜单中正确实现点击切换内容显示/隐藏,并确保屏幕尺寸变化时自动恢复默认可见状态,避免内联样式残留导致的显示异常。
-
middlemanbuild生成的HTML没有样式或JS,是因为默认不自动编译前端资产;需启用:sprockets或手动运行webpack,确保资源路径正确且文件实际生成。
-
Less中nth-child无法自动展开伪类,需用循环生成固定规则;如用.generate-stripes(@n,@i:1)配合递归和字符串拼接,在编译期输出前n项奇偶背景样式。
-
CSS属性选择器用方括号[]匹配HTML元素属性,如[type="submit"]选type值完全等于"submit"的元素,支持^=、$=、*=等模式,优先级与class相同,data-属性搭配最安全。
-
VueRouter切换时transition不生效,主要因router-view未被transition直接包裹、CSS类名未匹配Vue版本钩子(Vue2用v-前缀,Vue3默认fade-前缀)、路由组件非动态加载导致enter/leave钩子未触发。
-
column-gap不生效是因为容器未启用多列模式;必须设置column-count或column-width等触发属性,且display需为multi-column,内容足够长,避免与gap混用,单位推荐rem,Safari≤14.1需加-webkit前缀。
-
list-style是复合属性,等价于同时设置list-style-type、list-style-position和list-style-image;省略任一值则使用默认值(discoutsidenone),且list-style-image优先级高于type,加载失败即回退为无标记。
-
float:left元素默认横向排列,堆成一列的主因是子项width为100%、父容器坍缩未清除浮动,或盒模型/空白符导致宽度超限;现代布局应优先选用flex或grid。
-
font-display:swap是必须配置的底线,需配合format("woff2")、preload(带crossorigin和as="font")、同类型fallback字体链及document.fonts.ready使用,缺一不可。
-
本文详解如何通过Promise.all配合load事件与定时器,可靠检测一组动态插入的图片是否全部加载完成(含已缓存、已加载、加载失败等边界情况),并支持1秒超时兜底,避免阻塞布局重排逻辑。
-
表单控件默认颜色受浏览器和操作系统限制,部分状态和控件无法用普通CSS覆盖;需用appearance:none解封样式控制权,但会牺牲原生外观与可访问性;accent-color是复选框染色最简方案,但兼容性有限;100%控色只能靠ARIA模拟,代价高昂。