-
块级元素设置固定宽度并使用margin:auto可实现水平居中,适用于div等块级元素,需注意元素不能为inline或浮动、绝对定位,否则需改用text-align或Flexbox等方法。
-
最基础可靠的获取HTML页面方式是直接用浏览器打开HTML文件或通过本地服务器访问。file://协议适合静态页但禁用fetch等特性;Python内置服务器可模拟真实环境;curl/fetch适用于远程获取但受同源和JS渲染限制;关键在确保路径正确与脚本执行。
-
::after能清浮动而::before不行,因::after位于容器末尾可设clear:both下移撑开父容器,::before在开头无约束力;必须设content:""且display为block/table等块级值。
-
:visited伪类仅允许修改color、background-color等有限CSS属性,禁止font-size、display等样式及复杂选择器组合,本质是浏览器为保护隐私实施的限制。
-
作用域插槽允许子组件向父组件传递数据,通过slot属性传入响应式对象,父组件用v-slot解构接收;支持默认插槽、命名插槽及配合v-for动态渲染,但仅适用于单向数据流,双向通信应使用v-model或props+emit。
-
Vue组件通信需按场景选型:父子用props/$emit,跨层级用provide/inject,全局状态用Pinia,事件总线仅限低频解耦,$attrs/v-model用于封装透传,避免滥用ref或$parent破坏封装。
-
必须用<button>。它是触发动作而非纯导航,能确保无障碍访问、键盘操作一致性和表单正确包含;错误使用<a>或role="link"会导致语义混乱和交互异常。
-
应优先使用undefined而非null,因其语义更清晰、TS支持更好、运行时更一致;null仅在与API约定、DOM原生返回或需区分“未设置/已清空”时使用。
-
extends是ES6中基于原型链的类继承关键字,使子类继承父类实例方法、静态方法、getter/setter,并通过super()调用父构造器或父级方法,语法更清晰但本质仍是原型继承。
-
优化图片需用现代格式(如WebP)+合理尺寸+有损压缩;HTML压缩只删注释、合并空白、移除可选闭合标签;构建时图片须经imagemin插件压缩,CSS背景图也要走loader处理。
-
Array.prototype.sort()默认将元素转为字符串比较,导致数字数组如[10,2,1]排成[1,10,2];隐患包括NaN风险、大整数溢出、浮点精度误差;应使用显式条件返回-1/0/1,并对对象排序做空值处理与类型转换。
-
修改document.title最简单且兼容性最佳,而动态操作<meta>需精准增删、注意属性名与浏览器兼容性,SEO相关元信息须服务端输出才有效。
-
内联SVG作背景需URL编码并确保MIME前缀正确,外部SVG需服务器返回image/svg+xml,内联<svg>标签更适合交互场景;viewBox在dataURL中无效。
-
:first-child伪类选择父元素中第一个子元素,且该子元素需匹配指定选择器。例如p:first-child选中作为首个子元素的p标签;若首个子元素为其他类型(如h2),则p:first-child不生效,此时可用p:first-of-type选中首个p类型元素。样式应用需注意子元素实际顺序,:first-child基于位置而非类型,结合:first-of-type更灵活可靠。
-
IntersectionObserver怎么判断元素进入视口它不靠监听页面滚动事件,而是让浏览器在元素真正接近或进入视口时主动通知你——这意味着更少的重绘、更低的性能开销,尤其适合长列表或懒加载动画场景。关键点在于:必须手动给目标元素添加一个监听器实例,并指定threshold(触发阈值),比如0.1表示元素10%进入视口就触发回调;设为[0,0.5,1]则会在0%、50%、100%三个临界点各触发一次。常见错误现象:IntersectionObserver初始化后没调用observe()