-
<abbr>标签必须配合title属性才能实现语义化缩写功能,否则仅为普通内联元素;title需为简洁纯文本,提供准确全称,且不可含HTML或冗余描述。
-
clip-path动画不能直接用transition,因为浏览器仅对同构路径(如顶点数、类型、顺序均一致的polygon)进行线性插值;混用circle()与polygon()或单位不统一会导致跳变或失效。
-
JavaScript浮点数精度问题源于IEEE754标准,0.1+0.2!==0.3因二进制无法精确表示十进制小数,导致计算误差;可通过Number.EPSILON比较、整数换算、toFixed或decimal.js等方法规避。
-
纯HTML实现返回顶部需用<ahref="#top">指向带id="top"的顶部元素(不可设在<body>),配合html{scroll-behavior:smooth}启用平滑滚动,固定按钮需设z-index≥100并处理iOS兼容性;JS仅在路由、IE兼容或动态偏移时必要。
-
本文解析为何仅靠闭包共享状态(如counter)不构成单例模式,并演示如何通过延迟初始化与实例缓存实现符合定义的真正单例。
-
transition-property用于指定参与过渡的CSS属性,可选值为none、all或具体属性名,如width、opacity等。通过精确控制属性,避免不必要的动画,提升性能。例如设置transition-property:width,background-color,仅这两项属性会触发过渡效果。实际开发中常与transition简写结合使用,如transition:transform0.3sease,确保只有transform产生动画,其他属性如color即时生效。需注意仅可动画属性(如tran
-
Flex布局下子列默认等高,因align-items:stretch是默认行为;不等高主因是父容器缺display:flex、子项设height/align-self、脱离文档流或overflow截断。
-
使用justify-self:center和align-self:center可解决CSS网格中图标与文字居中问题,前者控制水平居中,后者控制垂直居中,需确保父容器设为display:grid且子元素无其他样式干扰。
-
CSS旋转动画必须作用于transform属性而非rotate()函数,需配合@keyframes定义、animation-fill-mode:forwards保持终态,并优先使用transform实现高性能动画。
-
Angular不支持通过插值语法{{}}直接绑定自定义data属性,必须使用属性绑定语法[attr.data-*]才能动态设置data属性值。
-
Chrome105+和Edge111+原生支持VirtualKeyboardAPI,但需先设置<metaname="viewport"content="height=device-height,virtualkeyboardpolicy=auto">,再通过navigator.virtualKeyboard.addEventListener("geometrychange",...)监听键盘显隐;iOS不支持该API,须降级为focu
-
最实用的响应式断点封装是用map定义断点变量、@mixin+@content实现可嵌套的媒体查询,键名推荐xs/sm/md/lg/xl,值带单位,调用时必须用大括号包裹内容块。
-
title属性是兼容性最好、开销最低的悬停提示方案,但无法定制样式/位置/延迟,且移动端大多不支持;CSS+data-tip可轻量自定义,JS方案更灵活但需防事件陷阱;ARIA方案最适配无障碍需求。
-
BEM通过块、元素、修饰符的命名约定提升CSS可维护性;其强语义化和高特异性有效避免命名冲突与样式污染;结合SMACSS、CSS-in-JS或Tailwind等模式可适应不同项目需求。
-
直接设置图片大小最简单的方法是使用<img>标签的width和height属性,数值可为像素或百分比;2.不建议直接在HTML中设置尺寸,因违反关注点分离原则,影响响应式设计和维护性;3.推荐使用CSS控制图片大小,如width:100%;height:auto;或max-width:100%;height:auto;以实现响应式布局;4.object-fit属性可精确控制图片在容器内的适应方式,如cover、contain等;5.图片尺寸设置不当会导致页面加载慢、累积布局偏移(CLS)、带宽