-
Fragment+rAF能提升性能是因为Fragment在内存中操作不触发重排,rAF将操作延至重绘前并支持分帧执行,避免主线程长时间阻塞。
-
ul和ol默认margin和padding不一致,需统一重置为margin:0;padding:0;;中文序号须用counter+::before实现;::marker样式受限且兼容性差;嵌套列表应统一设置padding-left:1.5em。
-
display:none彻底移除元素且不占空间,visibility:hidden仅隐藏但保留布局位置,前者触发重排后者仅重绘,性能与布局影响不同。
-
先检查document.cookie是否含cookies_consent=true,有则隐藏提示条;否则显示固定底部banner,“同意”按钮写入path=/、365天有效期cookie并移除节点,“拒绝”设为denied且不阻断功能,撤回入口须显性提供。
-
应优先使用textContent或createElement+append渲染用户输入,避免innerHTML引发XSS;必须渲染HTML时须用DOMPurify等库净化;服务端需配合上下文编码与CSP头防护。
-
HTML5本地存储主要有localStorage和sessionStorage,前者持久保存数据,后者仅在会话期间有效;两者均以字符串形式存储,需配合JSON.stringify和JSON.parse处理复杂数据;注意跨域限制、安全性及同步操作对性能的影响。
-
Symbol.toStringTag是JavaScript中用于自定义Object.prototype.toString()返回值中“类型标签”的内置符号;通过设置该属性,可使对象返回如“[objectMyCustom]”的字符串,仅影响toString()输出,不改变实际类型。
-
因为::before默认inline且基线对齐,易致符号下沉或挤文字;应改用:not(:first-child)::before绝对定位+currentColor适配主题,并响应式置空content。
-
核心是仅对新用户显示引导页:用localStorage.setItem('seenIntro','true')标记已查看,加载时通过getItem检查是否为'true'来决定是否隐藏引导层,并注意null判断、z-index层级、动态定位及异常处理。
-
HTML注释以<!--开始-->结束,可用于head、body、元素间等位置说明代码,但不可嵌套或插入标签内,合理使用可提升可读性与维护性。
-
font-display:swap仍会导致布局偏移(CLS),因其仅控制显示时机,未解决回退字体与自定义字体度量差异;需配合size-adjust微调占位尺寸,且仅Chromium和Safari17.4+支持。
-
浮动元素撑不满父容器时滚动条意外出现的直接原因是父容器设置overflow:auto/scroll且未清除浮动,导致高度坍塌被误判为内容溢出;需用clearfix、display:flow-root等方法建立BFC清除浮动。
-
答案:HTML5中通过JavaScript监听滚动并触发动画,常用window.scroll事件结合getBoundingClientRect判断元素位置,或使用IntersectionObserverAPI提升性能。1.基础方案用scroll事件检测滚动位置,当元素进入视口时添加CSS动画类;2.为避免性能问题,可采用节流函数控制事件频率;3.现代推荐方案是IntersectionObserverAPI,异步监听元素与视口交叉状态,适合大量元素高效处理,且自动解绑以防止重复执行,适用于视差滚动、懒加载等
-
select标签是语义化表单控件,用于创建可交互下拉列表;appearance:none需配合-webkit/-moz前缀且须重置background、border等才生效,各浏览器对尺寸、箭头、可访问性处理差异显著。
-
overscroll-behavior用于切断嵌套滚动容器间的事件传递链,仅在可滚动容器(overflow非visible且内容溢出)滚动至边界时生效;典型场景为模态框或侧边栏滚动到底/顶时阻止背景页面滚动。