-
必须用<form>,因其提供原生语义、回车提交、无障碍支持及聚焦管理;分组用<fieldset>+<legend>;type="number"需设step和min支持小数负数;保存按钮应为<form>内type="submit"并防重复提交。
-
clamp()比媒体查询更实用,因其能在单个声明中实现最小值—首选值—最大值的连续缩放,避免离散断点导致的突变;但无法替代媒体查询处理布局质变或display等属性变更。
-
父级高度为auto时子元素height:100%无效,因浏览器无法计算百分比;需html和body均设height:100%并清空margin/padding,或改用vh、flex:1、top/bottom:0等替代方案。
-
应使用cubic-bezier(0.34,1.56,0.64,1)并配合transform-origin精确控制缩放中心,同时启用GPU加速(translateZ(0)或will-change)缓解模糊;Safari需统一transform声明结构,多层缩放应分层设定曲线节奏。
-
现代浏览器原生懒加载推荐使用loading="lazy"属性,仅适用于<img>和<iframe>,需配合width/height防CLS,首屏图应设eager;响应式图片用<picture>+srcset按设备选最小合适资源;精细控制可用IntersectionObserver;WebP/AVIF格式与CDN缓存协同优化才是关键。
-
直接用opacity动画切换背景图会闪屏,因background-image不支持透明度动画,单容器切换时新图未加载完即触发opacity变化,导致空白或残留;须用双层绝对定位容器预加载图片,通过opacity关键帧与z-index类控制实现平滑淡入淡出。
-
结论:需同时使用overscroll-behavior:none(body)与contain(滚动容器)+JavaScript补漏(iOS15以下),并确保fixed遮罩层内可滚动区域显式设overscroll-behavior:contain,避免滚动穿透。
-
:nth-child(2n)选不到目标行是因为它按父元素下所有子元素的物理顺序计数,不区分标签类型;若存在thead、tbody或div等干扰节点,序号即错乱。
-
WebSocket用于客户端与服务器双向通信,如聊天室;WebRTC实现浏览器间点对点音视频及数据传输,需信令服务器辅助建立连接。
-
fixed元素滚动时不动是正常行为,因其本就相对于视口定位;异常表现通常源于父容器创建新包含块(如含transform)、滚动容器非body,或iOSSafari视口重算导致错位。
-
Slots是Vue.js中实现Markdown渲染组件内容分发与逻辑解耦的核心机制,支持具名插槽定制样式、作用域插槽注入动态数据、v-html混合渲染安全扩展及fallback优雅降级。
-
Airtable字段不渲染HTML,仅CustomBlock可通过innerHTML渲染;需Pro版本,且禁用script/iframe;替代方案是存URL并用OpenURL按钮跳转。
-
“权限不足”通常卡在目标位置不支持静态文件直接运行,而非代码或浏览器问题;常见于内网服务器、对象存储未开静态托管、误传至需后端解析路径,或Linux目录权限/用户组限制导致FTP无法写入。
-
HTML下拉列表必须用<select>而非<datalist>;强制单选需<select>+<option>,默认选中用selected,禁用项用disabled,引导项应value=""selecteddisabled,多选需multiple且后端支持数组,required生效需确保无空值可选。
-
CSS:hover无法获取鼠标进入方向,必须用JavaScript的mouseenter事件结合getBoundingClientRect()计算鼠标相对元素边界的偏移量来判断方向,并通过CSS自定义属性传递给样式系统实现方向感知动画。