-
HTML无法单独实现交互式看板,需CSS+JavaScript配合:用flexbox布局三列容器,监听dragstart/drop事件实现拖拽,通过localStorage保存卡片ID序列状态。
-
多个@keyframes可共存但元素仅能应用一个animation-name;需用逗号分隔多个名称实现叠加,且各子属性项数必须严格对应;transform函数顺序影响最终效果,合并写入同一句可实现复杂原子动画。
-
box-sizing默认值为content-box导致宽高计算反直觉,即width/height仅指内容区,padding和border额外增加;设为border-box后则宽高包含padding和border,更符合设计稿的“总尺寸”预期。
-
Chrome和Safari中清除按钮需用::-webkit-search-cancel-button配合-webkit-appearance:none等样式隐藏,仅appearance:none或opacity:0不兼容;Firefox不支持该伪元素;隐藏后仍可通过快捷键清空,彻底禁用需JavaScript拦截。
-
transform:rotate()单独使用无动画效果,需配合transition或@keyframes;hover中直接写会瞬变,须加transition:transform0.3sease并定义起始态;@keyframes旋转进入需明确from/to、单位、forwards及transform-origin。
-
ESLint与Prettier结合可统一代码风格并提升质量。1.ESLint检测代码问题,通过.eslintrc.js配置环境、规则、插件等;2.Prettier负责格式化,通过.prettierrc定义缩进、引号、分号等样式;3.使用eslint-config-prettier禁用冲突规则,eslint-plugin-prettier将Prettier作为ESLint规则;4.集成到编辑器(如VSCode)实现保存自动修复;5.配置npm脚本进行lint和format;6.结合Husky+lint-st
-
ID选择器赢,因其权重100高于class选择器的10;同元素同属性时,ID规则覆盖class规则,浏览器开发者工具中被划掉的样式即被更高权重要素覆盖。
-
改网页标题只有两种可靠方式:静态写在<head>里的<title>,或运行时用document.title赋值;其他操作均不保证生效,尤其影响SEO和历史记录。
-
实现图片懒加载的方法是使用JavaScript,通过IntersectionObserverAPI或回退到scroll事件监听。1)使用IntersectionObserverAPI检测图片进入视口时加载。2)如果不支持IntersectionObserver,使用scroll、resize和orientationchange事件手动检测。
-
能,getComputedStyle可读取动画中实时位移值,但需等待样式生效(如requestAnimationFrame后)并解析transform矩阵获取精确像素值。
-
position:sticky在原生表格元素上默认不生效,因表格渲染模型与sticky的定位上下文机制冲突;仅现代Chrome支持th/td的top:0吸顶,tr和Firefox均不支持;可靠方案是用div+sticky模拟表头吸顶,并严格同步列宽。
-
JavaScript跨域受限源于浏览器同源策略,核心解决方案是后端配置CORS(含简单请求、带凭证请求及预检请求的响应头设置),开发期可用前端代理,无法改第三方接口时可服务端中转。
-
ChromeDevTools中强制触发:hover和:active状态,应右键Elements面板元素→“Forcestate”→勾选对应伪类;该方式基于渲染层介入,能真实复现浏览器状态解析逻辑,比手动加CSS规则更可靠,且不改变页面实际行为。
-
在JavaScript中创建仪表盘主要有两种方法:1.使用CanvasAPI,适合需要频繁更新的场景;2.使用SVG,适用于复杂图形和不需要频繁更新的场景。这两种方法各有优缺点,选择时需考虑性能、响应式设计、用户交互、可访问性和数据驱动等因素。
-
侧边栏和顶部导航联动的关键在于基于路由层级动态激活:通过meta标记菜单归属,用useRoute和computed实时推导激活项,嵌套路由结构天然反映页面层级。