-
点击我CSS样式:添加基础样式和水波效果.ripple-btn {
position: relative;
overflow: hidden;
padding: 15px 30px;
background-color: #4CAF50;
c">
真实水波效果需JS捕获点击坐标并动态创建span元素,结合CSS动画实现以点击点为圆心的扩散遮罩;必须用getBoundingClientRect()精确定位、设absolute与border-radius:50%、动画后remove元素;推荐@keyframes替代transition以提升控制力和性能,并统一处理touchstart/mousedown事件防多触发。
-
BEM通过block__element--modifier命名结构建立样式隔离墙,防止命名冲突与作用域污染;block为独立可复用组件,element为其直属组成部分,modifier仅描述状态变体,三者职责分明、不可混用或跨层嵌套。
-
:not()伪类仅支持简单选择器,不可用于复合选择器;无法跨层级否定子元素,需用正向选择或分层类名;不改变优先级,多:not()链式使用表示“且”关系。
-
应使用transform替代display控制侧边栏显隐:初始设transform:translateX(-100%)实现默认隐藏,点击触发.open类改为translateX(0)实现滑入动画;同时需用stopPropagation()阻止事件冒泡,避免点击菜单自身导致关闭,并采用flex布局让主内容区自适应避让。
-
内存碎片是标记-清除GC后存活对象分散导致的空闲空间不连续现象,引发分配失败、内存虚高和GC效率下降;V8通过空闲期压缩缓解,开发者应复用大对象、减少波动并及时解引用。
-
不能直接用展开运算符拷贝FormData,因其无自有可枚举属性且不可迭代;应使用newFormData(original.entries())实现轻量化浅拷贝,兼容现代浏览器,保留多值顺序与File/Blob引用。
-
使用align-items和justify-items可实现Grid子元素在网格单元格内垂直水平居中,前者控制Y轴对齐,后者控制X轴对齐,适用于多个子项统一居中;若需单独控制,则使用place-items或align-self与justify-self。
-
富文本场景下服务端HTML过滤不可省略,PHP必须用HTMLPurifier或XssHtml类做最终净化,前端DOMPurify仅作体验优化;需配置白名单、禁用危险协议、显式禁止script等标签,并在入库和渲染时双重净化。
-
@debug在编译时将变量或表达式原始值(如10px、rgba(0,0,0,0.5))输出到终端,不生成CSS,用于快速验证逻辑;但遇null或未定义变量会报错中断编译。
-
findIndex()返回首个匹配元素索引或-1,适用于对象数组复杂条件查找;需防undefined、正确组合条件、善用thisArg复用谓词,并避免与find()重复调用。
-
用meta标签实现定时刷新或跳转,本质是浏览器将<metahttp-equiv="refresh">解析为等效HTTP响应头Refresh,不依赖JS、兼容性好但无状态控制、不可取消且SEO不友好。
-
<p>SCSS中用@for循环生成递增animation-delay最简洁,如@for$ifrom1through12{.item:nth-child(#{$i}){animation-delay:#{$i*0.1}s;}},需用#{}插值并保留单位。</p>
-
必须用JavaScript动态修改input.type并同步处理焦点、光标、inputmode、aria-label等,才能安全兼容地实现密码明文切换;直接改type易导致值丢失、光标错位、键盘异常及可访问性失效。
-
clip-path:polygon()是现代浏览器实现六边形最直接可控的方式,需用百分比坐标如(50%0%,100%25%,100%75%,50%100%,0%75%,0%25%)并配合明确宽高或aspect-ratio确保居中与响应式。
-
a[href^="http"]可精准捕获HTTP/HTTPS外链,但需注意大小写敏感、HTTPS兼容及:visited伪类限制;文件与协议链接宜用[href$=".pdf"]和[href*="mailto:"]匹配。