-
应使用min-height:100dvh+max-height:100dvh+overflow-y:auto替代height:100vh,配合flex-shrink:0和visualViewport.resize监听,在不支持dvh时降级并用JS动态更新高度。
-
<metaname="robots">标签仅是建议,生效需页面被成功抓取;若robots.txt屏蔽路径、返回4xx错误、content值大小写/空格/标点错误、或JS动态插入,均导致失效;X-Robots-Tag更可靠且优先级更高。
-
用::before或::after替换原生单选按钮需两步:先设appearance:none清空默认样式并隐藏input(display:none),再用label::before绘制自定义圆圈;因input是替换元素,伪元素不生效,故推荐:checked+label::before方案,确保兼容性。
-
:valid用于选中值合法的表单元素,需配合required、type(如email)或pattern使用;无约束时无效,空required初始为:invalid,非required空字段处于未验证状态。
-
禁用<textarea>拖拽缩放需使用resize:none;,必须作用于元素本身或明确选择器,避免被框架样式覆盖;其他值如vertical仅禁用水平方向,仍可拖拽破坏布局。
-
HTML5的<mark>标签无响应式属性,需用CSS实现:通过clamp()控制字号、em单位设置内边距、显式定义颜色、包裹容器扩展点击区域、调整line-height防裁切,并坚持语义化使用。
-
原型链污染是JavaScript中因不当处理对象属性导致的高危安全问题,攻击者通过控制输入向Object.prototype写入恶意属性,影响所有对象行为;其发生源于对象属性访问时沿原型链查找,若未防护地递归赋值用户可控数据(如JSON、URL参数),可能意外修改__proto__或constructor.prototype;常见触发点包括使用存在缺陷的深拷贝工具、手动递归赋值未过滤敏感键、直接解析含{"__proto__":{}}的JSON;防御核心是不信任任何输入,升级修复版本依赖、过滤敏感键名、采用
-
letter-spacing是CSS属性而非HTML5属性,自CSS1起存在,用于精确控制字符间水平间距,支持px/em/rem等单位,可正可负,具继承性,需配合字体与设备实测确保渲染一致。
-
需用<frameset>替代<body>构建多页面框架布局,通过rows划分区域、frame指定src和name,设置border="0"、noresize、scrolling="auto"优化显示,用target跳转,noframes提供降级内容,并避免嵌套及SEO问题。
-
先通过JavaScript获取表格行并转换为数组,再根据点击的列索引进行排序。使用sort()方法比较单元格内容,区分数字和字符串类型,中文采用localeCompare('zh')确保正确排序。每次排序后更新行顺序,并切换升序降序状态。通过sortDirection对象记录各列排序方向,点击表头时切换顺序。最后将排序后的行重新插入tbody完成更新。可添加箭头符号提示当前排序方向,提升用户体验。核心是处理数据类型和本地化比较,避免文本方式排数字或中文乱序问题。
-
hsl()是实现平滑循环色相动画的唯一可靠方案,需用0→360线性插值、避免混用色彩模型、提供rgbfallback并真机实测。
-
用contain:layoutpaint或contain:strict可实现局部重绘,但需容器尺寸稳定、子元素不越界且浏览器支持;contain:layoutpaint最常用,strict隔离最强但要求明确尺寸和定位约束。
-
分代回收是现代运行时内存管理的底层事实,新对象默认在第0代因绝大多数对象存活时间极短,运行时据此高频次扫描小区域以精准回收;晋升由GC次数而非时间决定。
-
下拉刷新在纯HTML中完全无效,因为HTML是静态标记语言,无事件循环和手势监听能力,必须依赖JavaScript通过touch事件、CSS位移与过渡及手动数据获取实现。
-
最推荐方式是navigator.clipboard.writeText(),现代浏览器均支持,需HTTPS或localhost安全上下文,必须用户触发;旧浏览器降级用document.execCommand("copy")。