-
flex-grow控制子元素扩展以填充剩余空间,值越大占比越大;flex-shrink决定空间不足时的压缩比例,值越大收缩越明显,二者配合实现灵活布局。
-
input类型由type属性决定而非文件名;截至2026年,主流浏览器稳定支持22种标准type值,datetime已废弃、data为date拼写错误;file过滤需用accept指定MIME或扩展名,multiple须显式声明;移动端键盘适配依赖正确type值,拼写错误会导致降级为text。
-
邮件模板必须用XHTML1.0TransitionalDoctype、table布局、内联样式,禁用HTML5标签、外部CSS、Flexbox、Grid和媒体查询,600px宽度最安全,所有样式(字体、行高、颜色等)须写在每个标签的style属性中。
-
深度监听性能开销源于递归遍历建立依赖和变更时的深层diff;优化需精准监听、computed缓存、节流防抖、手动diff或替代策略。
-
<metaname="robots">标签仅是建议,生效需页面被成功抓取;若robots.txt屏蔽路径、返回4xx错误、content值大小写/空格/标点错误、或JS动态插入,均导致失效;X-Robots-Tag更可靠且优先级更高。
-
可通过路由守卫配合beforeunload事件实现离开前提醒:监听表单变更设isFormDirty为true,beforeunload触发浏览器原生提示,路由守卫(Vue的beforeRouteLeave或React的useBlock)拦截跳转并自定义提示,再辅以草稿保存和状态同步优化体验。
-
fixed元素相对于视口定位且脱离文档流,滚动时保持位置不变;需设置top/right/bottom/left偏移值才可见,但受transform/perspective/filter等属性影响而退化为相对父容器定位,并在移动端存在软键盘、滚动闪烁等兼容性问题。
-
mark是唯一语义正确、可访问且被搜索引擎识别的高亮方式;直接innerHTML.replace()会导致XSS、DOM损坏及结构错乱;安全做法须用TreeWalker遍历文本节点,结合escapeHtml、matchAll和range.surroundContents()实现。
-
应禁用触摸设备的:hover动画,使用@media(hover:none)或(any-hover:none)精准拦截;卡片默认静态,仅在(hover:hover)且(pointer:fine)时启用transform/opacity动画;iOS点击跳变需加-webkit-tap-highlight-color:transparent和touch-action:manipulation。
-
id是唯一标识,class是复用标签;id用于锚点、label绑定和高频JS访问,class适用于样式复用、组件化开发及行为解耦,重复id会导致getElementById返回首个匹配元素且难以排查。
-
Vue2中watch默认监听不到数组索引赋值(如arr[0]=newValue)和修改length的变化,因Object.defineProperty无法拦截;响应式操作有push、pop、shift、unshift、splice、sort、reverse;非响应式操作包括索引赋值、length修改及直接替换引用(除非deep:true)。
-
首先检查HTML结构是否完整,包含DOCTYPE、html、head和body标签,并确保标签正确闭合;接着通过浏览器开发者工具查看错误信息与资源加载情况,确认文件编码为UTF-8,排除外部资源路径错误导致的空白页问题。
-
原生语义标签比ARIA更可靠;<divrole="button">缺乏键盘支持和表单行为,应优先用<button>;有可见文本用aria-labelledby,纯图标用aria-label;aria-live="polite"用于状态提示,assertive用于关键错误;FontAwesome装饰性图标自动aria-hidden="true",功能性图标需显式声明语义。
-
需通过标准超链接配合相对/绝对路径实现双向导航:一、用相对路径(如“page2.html”或“../page1.html”);二、用锚点(如“page1.html#section-a”);三、用根相对路径(如“/about.html”,需本地服务器支持);四、用JavaScript动态加载导航;五、验证链接有效性,避免404。
-
直接给width/height加transition会触发重排(reflow),导致卡顿,且height:auto无法插值;应改用max-height、transform或opacity等不触发布局的属性实现平滑过渡。