-
h1到h6的语义层级由HTML文档大纲决定,而非CSS样式;必须严格按嵌套顺序递进使用,避免视觉与语义错位,单页应用中宜用section/article包裹独立h1,隐藏h1需用clip-path等可访问方式,内容须简洁唯一、不可为空或含未解析变量。
-
ChromeDevTools中强制触发:hover和:active状态,应右键Elements面板元素→“Forcestate”→勾选对应伪类;该方式基于渲染层介入,能真实复现浏览器状态解析逻辑,比手动加CSS规则更可靠,且不改变页面实际行为。
-
直接写min-width:768px易导致“魔法数字”问题,应改用CSS变量统一管理断点,如--breakpoint-md:768px,并在:root中定义、媒体查询中以@media(min-width:var(--breakpoint-md))安全调用。
-
当使用html{overflow:hidden}+body{overflow:scroll}实现全屏滚动时,浏览器原生的#top锚点会失效,因其依赖文档根元素滚动;解决方案是为首页区域显式添加id="home"并统一使用语义化ID锚点。
-
height:100%不生效是因为百分比高度需父元素有明确高度,而html的父级(视口)默认不被当作有高度的容器;应改用height:100vh或min-height:100dvh,并重置margin/padding。
-
对话框背景置灰的本质是用fixed定位的半透明遮罩层覆盖内容,而非给body加灰度滤镜;需组合使用fixed、inset-0、bg-black、bg-opacity-50和z-40,且遮罩层须与对话框同级并设置aria-hidden="true"。
-
ul嵌套必须将内层ul作为父级li的直接子元素,否则结构断裂、编号重置、键盘导航失效;ul本身无序号,层级编号需CSScounter实现;嵌套超三层应优先用details/summary。
-
WebWorkers是HTML5提供的后台线程API,用于在独立于主线程的环境中执行JavaScript脚本,避免阻塞UI。通过newWorker('worker.js')创建实例,利用postMessage传递数据,onmessage接收结果,实现主线程与Worker线程间的消息通信。Worker分为DedicatedWorker、SharedWorker和ServiceWorker,其中DedicatedWorker适用于单一脚本的高负载计算任务。由于线程间数据通过结构化克隆算法序列化传输,大对象传递
-
100dvh是当前最简有效的解法,它表示当前可见视口高度,实时响应地址栏收放、软键盘开关和横竖屏切换;iOS16.4+、AndroidChrome109+已支持,需用@supports安全降级。
-
arc()是圆弧路径构造函数而非绘图命令,需配合beginPath()、stroke()/fill()及样式设置才能显示;参数中角度单位为弧度,x/y为圆心坐标,radius≥0,anticlockwise控制绘制方向。
-
sticky失效的根本原因是父容器未形成可滚动上下文:高度不足、overflow:hidden/auto/scroll截断、未设top等偏移值,或父容器高度≤sticky元素自身高度。
-
tfoot必须写在tbody前面,因为HTML规范强制要求该顺序;浏览器解析时若发现tfoot在tbody后会自动重排DOM,导致CSS定位失效、JS节点顺序异常、打印错乱及首屏优化失败。
-
linkrel="preload"as="image"失效主因是路径无效、类型不匹配、时机过晚或MIME不符;应置于head顶部、验证Content-Type、配合fetchpriority="high"精准预加载首屏关键图。
-
formnovalidate属性必须加在<buttontype="submit">或<inputtype="submit">上且位于<form>内;它仅对提交按钮生效,用于单按钮跳过校验,与表单级novalidate互斥但优先级更高。
-
navigator.deviceMemory返回近似分级值(如0.5、1、2、4、8GB),非精确内存容量,仅Chrome63+和Edge79+支持,Firefox/Safari不支持,HTTP下返回undefined,需结合hardwareConcurrency等信号综合判断并降级。