-
transition必须写在宽度实际变化的元素(如.mask)上,而非父容器;需设初始width值,优先用transform:scaleX()替代width实现平滑动画。
-
必须重置h1–h6默认样式并遵循HTML5语义规范:统一用all:unset重置,按需定义字体、间距;每页仅一个h1,层级递进使用h2–h6;用语义类名替代标签依赖;响应式需分层媒体查询控制。
-
要反转对象数组的键值对,需遍历每个对象并交换其键与值,但需注意值的唯一性及类型限制。1.使用map和Object.entries()配合reduce或for...of循环创建新对象,将原值作为新键,原键作为新值;2.若值为对象或数组,直接用作键会转为"[objectObject]"导致冲突,可采用JSON.stringify()序列化处理,但需注意性能与循环引用问题;3.当存在重复值时,直接赋值会导致覆盖,应使用数组存储对应键以避免数据丢失;4.Lodash的_.invert仅适用于单
-
grid-template-rows使用auto时行高由内容决定,适合动态内容;使用固定值(如50px)则布局规整,适合对齐要求高的场景。可混合使用,如60pxauto40px,兼顾灵活性与结构统一。
-
需同时支持鼠标和触摸事件以实现跨设备拖拽。首先通过检测ontouchstart判断是否为触摸设备,并据此统一使用touchstart/mousedown等对应事件;在事件回调中优先从touches[0]或clientX/clientY提取坐标,封装函数屏蔽差异;拖拽开始时绑定相应move/end事件,结束时及时解绑以防冲突;仅在位移超过阈值确认拖拽后调用preventDefault()避免误阻滚动。通过统一事件接口与状态管理,确保桌面与移动设备均流畅交互。
-
<mark>标签本身性能开销极小,真正影响首屏速度的是不当CSS样式、大规模无节制渲染及客户端动态插入等误用行为。
-
HTML5中<header>、<nav>、<main>、<section>、<article>、<aside>、<footer>等结构标签必须成对闭合,否则会导致DOM解析异常、CSS失效、无障碍访问受损及W3C验证失败。
-
animation-delay用于设置动画首次播放前的延迟时间,仅错开起点而不暂停或中断动画;可为负值实现中途开始,需配animation-fill-mode:backwards避免闪动。
-
使用伪类可实现图标交互效果::hover改变悬停样式,:active响应点击状态,:focus提升可访问性,结合::before/:after动态替换图标内容,通过颜色、大小、transform等属性增强视觉反馈。
-
flex布局里align-items不生效?检查父容器是不是块级且有高度很多情况下写完display:flex和align-items:center,子元素就是不居中——大概率是父容器没撑开。flex的垂直居中依赖父容器明确的高度(height或min-height),否则它会按内容自动收缩,导致“居中”无从谈起。常见错误现象:div里放了个按钮,加了flex居中,但按钮还是贴着顶部;检查computedstyles会发现父容器height是0。确保父容器设
-
Promise是一个状态容器,初始为pending,之后只能变为fulfilled或rejected且不可逆;它不是回调函数的语法糖,也不能让异步变同步。
-
HTML5上传日志记录核心是监听XMLHttpRequest.upload.onprogress等事件,需手动用XHR或fetch发起上传,捕获进度、状态、错误等信号,而非依赖表单提交;关键字段包括文件名、大小、起止时间、状态码、错误详情及响应体,须脱敏处理并避免高频日志影响性能。
-
this的值由调用方式动态决定,而非定义位置;obj.method()中this为obj,独立调用时非严格模式下为window/globalThis,严格模式下为undefined,箭头函数则继承外层普通函数的this。
-
直接修改HTML文件中的<footer>区域即可更新版权信息,需替换其中的©年份和公司名,注意保留©实体;若为JS动态生成,须修改对应脚本或删除;多页需批量替换或统一引用。
-
fr单位按剩余空间分配而非容器总宽,受padding、gap、min-width影响;响应式需用repeat(auto-fit,minmax(280px,1fr));等高靠align-items:stretch或flex-column+margin-top:auto;IE11不支持fr,应降级为Flexbox。