-
HTML5正式支持约20个rel值,但仅部分被主流浏览器实现:stylesheet(唯一触发CSS加载)、icon(需type和sizes)、preload(须配as)、prefetch(空闲低优先级)、preconnect(单域名)、dns-prefetch;noopener/noreferrer仅对target="_blank"有效;alternate/author/next等慎用;第三方服务要求的rel值需严格按规范配as、crossorigin等属性。
-
worker_threads仅能缓解CPU密集型阻塞,对同步I/O(如fs.readFileSync)、同步解析或忙等待等阻塞事件循环的操作无效,主线程仍会卡死。
-
必须为html和body显式设置height:100%或100vh,否则仅父容器设height:100vh会导致子元素塌陷;全屏布局中优先用flex:1而非height:100%传递高度,移动端建议用100dvh替代100vh。
-
应使用自定义指令v-click-outside,通过el.contains(event.target)判断点击是否在弹窗外部,配合mounted/unmounted绑定/解绑document点击事件,确保SSR兼容与多弹窗隔离。
-
在Jest中测试HTML元素类型(如HTMLLabelElement)时,需启用JSDOM环境并正确配置TypeScript类型支持,否则会因全局DOM接口未定义而抛出ReferenceError。本文详解配置步骤、代码写法及常见陷阱。
-
本文详解如何用HTML、CSS和JavaScript实现一个线性(非环形)倒计时器,支持60秒自定义时长,进度条从左向右平滑填充,并在剩余10秒时变黄、5秒时变红、归零后保持红色。
-
JavaScript隐式转换规则包括:1.布尔上下文中falsy值(如0、""、null等)转为false,其余为true;2.字符串上下文中+操作符触发拼接,如"5"+3→"53";3.数值上下文中运算符促发转数字,如5-"3"→2;4.对象转换时优先调用valueOf(),否则toString(),如[]+""→""。
-
HTML5touch事件提供touchstart、touchmove、touchend和touchcancel四类原生接口,分别用于捕获触摸起始、移动、结束及中断状态,配合touches/changedTouches坐标读取、preventDefault控制与多点触控适配,可实现拖拽、滑动等交互;需手动封装支持事件委托。
-
闭包不能防篡改,仅隔离访问路径;必须深拷贝+类型白名单校验,否则get/set成后门;Object.freeze仅浅冻结,无效于嵌套修改;IIFE封装+显式reset可避免状态残留。
-
NotificationAPI仅负责前端主动显示弹窗,不支持后台接收消息;WebPush需ServiceWorker持久监听并调用showNotification(),且依赖VAPID、PushManager订阅及后端合规推送协议。
-
animation-play-state:paused仅对运行中的动画生效,需确保动画已启动;纯CSS依赖:hover或class切换,JS推荐监听animationstart后设置或用getAnimations().currentTime精准控制进度。
-
原生checkbox是语义化、可访问且表单集成的布尔控件,其状态切换依赖:checked伪类与change事件;用button模拟会丢失语义、无障碍支持和自动表单提交能力。
-
垂直菜单最稳妥的结构是用<nav>包裹<ul>,每个菜单项用<li>,链接用<a>;必须避免<div>堆砌或<a>直塞<nav>,统一用aria-current="page"标识当前页,并通过display:block和text-decoration:none确保语义正确、点击热区完整、样式可控。
-
不能用<table>套整个页面,因其专为结构化数据设计,用于布局会导致语义错乱、可访问性差、响应式失效、维护困难;报表页应仅在行列关系明确处使用,并配齐<thead>/<tbody>、<th>与scope属性,整体布局推荐Flexbox或Grid。
-
现代标准做法是使用WebCryptoAPI,它基于硬件加速和系统级随机数生成器,提供密钥管理、加解密操作和算法绑定三大核心功能,支持AES-GCM对称加密和RSA-OAEP公钥加密,强调密钥安全与运行时兼容性检测。