-
平滑的背景色动画必须用transition而非@keyframes,需明确声明background-color、使用hsl()或rgb()值、指定cubic-bezier时序,并避免background简写和background-image干扰。
-
使用position:absolute和z-index可实现按钮提示框,首先设置父按钮为relative定位,提示框为absolute定位并用top、left和transform调整位置,通过:hover触发opacity显示,同时设置z-index确保层级优先,避免被其他元素遮挡,配合transition实现淡入效果,并可通过::after伪元素添加指向箭头,提升视觉引导。
-
正确书写<meta>标签需确保:①必须置于<head>内且charset为首个标签;②http-equiv与name不可混用;③viewport紧随charset或title后;④description仍有效但须精准简练;⑤OpenGraph/TwitterCard需用绝对URL并校验参数。
-
HTTPS不能替代混合内容修复,因页面中仍可能加载HTTP资源导致浏览器阻止并引发功能异常;需通过开发者工具定位报错,用协议相对地址或HTTPS硬编码批量修复,CSP的upgrade-insecure-requests对HTML内联资源无效。
-
JavaScript中没有原生协程,但可通过生成器和async/await模拟;1.生成器(function*)使用yield实现显式暂停与恢复,通过next()方法驱动,支持双向通信,适用于自定义迭代器、状态机及复杂异步控制;2.async/await基于Promise,用await暂停异步函数执行直至Promise解决,自动恢复,简化异步代码,提升可读性;3.两者不等价:生成器是底层控制原语,灵活但需手动驱动,async/await是异步场景的高级语法糖,自动与事件循环协作;4.选择async/awa
-
渐变方向必须用媒体查询完整重写linear-gradient(),不能只改to值;colorstop百分比在非正方形容器中视觉位置会偏移,CSS变量在gradient方向参数中兼容性有限。
-
必须配background-size是因为渐变本质是静态背景图,只有当background-size大于容器时,background-position才有移动空间;若为auto或100%100%,则严丝合缝无位移余量。
-
选择支持JavaScript的SDK可实现无人机或机器人控制,如Parrot、DJITello、Sphero及ROS系统。以Tello为例,通过Node.js安装node-easy-tello库,连接设备Wi-Fi后编写脚本发送指令,实现起飞、上升、旋转、降落等动作,命令以Promise链式调用。部分SDK支持事件监听,实时获取电池、高度等状态数据,可用于安全策略或仪表盘展示。结合Express或Socket.IO搭建Web服务器,前端通过HTTP或WebSocket发送控制指令,实现可视化操作界面,适合
-
Bootstrap网格嵌套时子行不占满父列宽度,是因为.row默认有±15px外边距,而父.col-未设position:relative或overflow:hidden来截断;必须严格遵循“列→行→列”结构,且父列须为.col-类、子.row须直接子元素于该列。
-
height:100%在Flex子项中不生效的根本原因是父容器无明确高度,导致百分比失去参照系;需配合min-height:0、flex:1或height:stretch等显式拉伸策略才能生效。
-
必须用background-image替换linear-gradient才能自定义Bootstrap5条纹进度条颜色,background-color无效;.progress-bar-striped和.progress-bar-animated需同步修改且方向、色标一致,并注意.progress底色对比度。
-
浅拷贝只复制第一层属性,嵌套对象仍共享引用;JSON.parse(JSON.stringify())是最简深拷贝但丢失Date、函数等类型;手写需处理循环引用和内置类型;LodashcloneDeep是生产首选。
-
JavaScript的class是原型继承的语法糖,本质仍是函数和prototype,不提供私有字段(除#field)、不支持多重继承,static方法与实例方法需通过类名或this.constructor调用,子类constructor必须首行调用super()。
-
animationend不触发的根本原因是CSS动画未真正执行,常见于初始与终态相同、动画时长为0、元素未挂载或display:none、animation-fill-mode误用等;需用getComputedStyle验证真实状态,避免依赖event.animationName,兼容性差时应加setTimeout回退。
-
JavaScript自定义事件通信核心是CustomEvent+dispatchEvent+addEventListener,推荐封装事件总线(Map存储、支持on/once/off/emit),组件销毁时需解绑防泄漏;跨层级优先用props/context/store,仅插件或微前端等解耦场景用事件;命名加前缀、检查元素存在、记录source/timestamp提升健壮性。