-
构造函数内定义方法会为每个实例创建独立闭包,导致内存重复占用;应改用原型方法或延迟绑定。
-
:focus-visible是解决鼠标点击突兀黑框最干净的方式,但需配合显式outline设置、正确书写顺序(:focus在前重置,:focus-visible在后覆盖)及JS降级方案,否则Safari等旧浏览器将无焦点提示。
-
直接在:root改CSS变量值不生效,主因是变量被更高优先级选择器覆盖或作用域错位;需用开发者工具查“Computed”中变量来源,并确保所有样式均使用var()引用而非硬编码值。
-
float让元素排成一行失败的核心原因是脱离文档流致父容器塌陷;需触发BFC(如overflow:hidden)、子元素设width、慎用clear:both位置、响应式中须重置float/clear。
-
最有效解法是用.block__element--modifier替代深层嵌套选择器,BEM本质是将DOM层级“翻译”为类名结构,实现浏览器单次匹配、开发者快速定位。
-
transform:translate(-50%,-50%)配合position:fixed能居中,是因为fixed使元素脱离文档流并相对于视口定位,而translate的百分比基于自身宽高,结合left:50%和top:50%将左上角移至视口中心后再反向偏移一半尺寸,实现视觉居中。
-
防抖和节流用于控制函数执行频率。防抖通过延迟执行,确保事件连续触发后仅执行一次,适用于搜索框输入等场景;节流通过时间间隔控制,保证单位时间内最多执行一次,适合滚动加载、按钮防重等高频事件处理。
-
答案:实现实时Markdown编辑器需通过前端JavaScript监听输入并即时解析渲染。首先搭建包含textarea和预览区的HTML结构,利用CSS实现分栏布局;引入marked.js库将Markdown文本转为HTML;通过input事件实时调用marked.parse()更新预览内容;可添加防抖优化性能,结合highlight.js实现代码高亮,并注意XSS防护与用户体验细节。
-
html{scroll-behavior:smooth}必须作用于html元素,因浏览器主滚动容器是html而非body;写在body上无效,属最常见错误;需检查DevTools中html元素的computed样式是否生效,并排除重置样式、系统偏好及目标元素可见性等干扰因素。
-
@starting-style是CSS动画起始状态声明机制,需配合同名@keyframes和animation使用,仅Chromium114+实验性支持,必须启用实验标志,不兼容Firefox/Safari,不可用于transition,非生产就绪。
-
float是实现文字环绕图片最轻量、兼容性最好的原生方案,需为图片显式设置width(或max-width)和float,文字必须紧跟其后且处于同一BFC中,同时注意父容器坍缩问题。
-
CSSlinear()是专为分段线性缓动设计的新函数,非linear关键字替代品;需Chrome113+/Firefox115+/Safari16.4+支持,参数须单调递增且在0–1内,仅可用于transition-timing-function或动画属性级animation-timing-function,不可用于@keyframes内部。
-
console.count按标签分组计数,非全局累加;需固定语义化标签(如'over100')并在条件内调用,配合countReset可重置,但不可赋值或用于逻辑判断,仅适用于调试验证。
-
使用百分比宽度设置容器,配合max-width和min-width控制弹性范围,结合box-sizing:border-box防止布局溢出,并通过max-width:100%使图片自适应,实现流式布局。
-
querySelectorAll返回静态NodeList,非Array,旧浏览器不支持forEach;推荐用Array.from转数组再遍历,确保兼容性与语义清晰。