-
HTML5正式支持约20个rel值,但仅部分被主流浏览器实现:stylesheet(唯一触发CSS加载)、icon(需type和sizes)、preload(须配as)、prefetch(空闲低优先级)、preconnect(单域名)、dns-prefetch;noopener/noreferrer仅对target="_blank"有效;alternate/author/next等慎用;第三方服务要求的rel值需严格按规范配as、crossorigin等属性。
-
可通过五种方法恢复网页文本可复制性:一、覆盖user-select:none为text;二、移除JavaScript阻止选中的事件监听;三、清除unselectable="on"属性;四、修正pointer-events禁用导致的选中失效;五、禁用遮罩类伪元素。
-
短路求值是JavaScript中&&和||的特性:左侧操作数足以确定结果时,右侧不执行;||用于提供默认值(对falsy值返回右侧),&&用于安全访问(仅truthy时执行右侧);但需注意0/""/false等合法falsy值被||误覆盖,推荐用??和?.替代。
-
使用CSS变量或伪元素结合过渡效果可解决渐变在媒体查询中切换突兀的问题,通过控制变量颜色、透明度或类名切换实现平滑响应式渐变。
-
linear-gradient需注意方向逻辑(如totop表示向上渐变)、角度单位(0deg=totop)、多色停靠点须显式标注百分比;radial-gradient需明确形状/大小/位置三要素顺序,用关键字控制扩散范围;二者坐标系统本质不同。
-
必须先掌握display、flex和grid等原生CSS布局能力,再学框架;否则无法理解优先级、盒模型等底层逻辑,导致框架“不生效”;Tailwind是CSS属性的class映射,非替代品,需结合原生CSS分层协作。
-
<p>、<h1>–<h6>、<dt>不能嵌套块级元素如<div><ul><section>;不可互相嵌套;<li>可嵌套任意流内容。浏览器会自动纠错非法嵌套,导致DOM结构与预期不符。
-
Angular模板中可直接使用rgba()、#RRGGBBAA或transparent等透明色,推荐rgba()以避免opacity影响子元素;动态设置需在TS中拼接字符串并约束alpha范围0–1。
-
应使用viewport-fit=cover并配合env(safe-area-inset-bottom)动态设置按钮容器padding-bottom,避免bottom:0导致被软键盘遮挡,确保iPhoneX及以上机型底部按钮始终可见。
-
纯HTML5静态页面无法实现真正安全的登录功能,仅能模拟假登录、对接后端API或用localStorage标记状态;必须用服务器运行并调用真实后端接口完成身份验证。
-
实时搜索功能需结合防抖、取消旧请求和状态管理:监听input事件并延迟300ms执行搜索;用AbortController中止过期请求;渲染时处理加载、空结果、错误等状态,并建议后端优化索引、限流与缓存。
-
JavaScript状态管理核心是让数据变化可追踪、可预测、可复用;通过集中state对象存储、setState统一更新、发布-订阅通知视图、封装createStore或Store类、异步用action控制三态、派生状态实时计算或缓存来实现。
-
首先,通过getDisplayMedia()实现屏幕捕获,用于共享桌面内容;其次,使用getUserMedia()获取摄像头和麦克风输入流;接着,可将两者结合并通过canvas合成实现画中画效果;最后,需注意仅在HTTPS下运行、用户操作触发、浏览器兼容性及监听共享结束事件,以确保功能正常与用户体验。
-
ES6的class本质是构造函数的语法糖,底层仍基于原型机制;它用class关键字声明,含constructor、实例方法和静态方法,不提升、默认严格模式,必须new调用,方法不可枚举,继承通过extends+super实现。
-
transition用于状态间平滑过渡,适合交互效果;animation通过关键帧实现复杂动画,支持多阶段与循环播放。