记一个诡异的坑:一样的代码,换了一台电脑跑起来就乱掉了

您所在的位置:网站首页 电脑蓝屏报错代码不一样 记一个诡异的坑:一样的代码,换了一台电脑跑起来就乱掉了

记一个诡异的坑:一样的代码,换了一台电脑跑起来就乱掉了

2024-07-09 04:10| 来源: 网络整理| 查看: 265

目录 记一个诡异的坑:一样的代码,换了一台电脑跑起来就乱掉了 原因分析解决结论 记一个诡异的坑:一样的代码,换了一台电脑跑起来就乱掉了

一样的代码,换了一台电脑跑起来就乱掉了...

预期效果(在自己电脑上的正常效果)

相关代码

测试预期效果 世外经开小学 前期阶段 36% 建设阶段 79% 世外经开小学 前期阶段 36% 建设阶段 79% 世外经开小学 前期阶段 36% 建设阶段 79% 世外经开小学 前期阶段 36% 建设阶段 79% function containerLoad() { console.log("元素加载初始化") document.querySelectorAll(".progress_card").forEach(item => { let parent = item.parentElement let zIndex = parent.style.zIndex parent.setAttribute("z-index", zIndex) }) } // 暂未做节流防抖处理 function hoverEvent(dom) { let parent = dom.parentElement parent.style.zIndex = 999999 } function hoverLeaveEvent(dom) { let parent = dom.parentElement let zIndex = parent.getAttribute("z-index") parent.style.zIndex = zIndex } body { display: flex; justify-content: center; align-items: center; height: 90vh; background-color: black; /* background-image: url(./src/assets/test_bg.png); */ background-image: url(https://img-blog.csdnimg.cn/20210630201008738.png); background-repeat: no-repeat; background-position: center; } .container { position: relative; width: 600px; height: 300px; } .container .card { position: absolute; cursor: pointer; /* transition: z-index 0.2s; */ } .container .card:nth-child(1) { left: 0; top: 0; } .container .card:nth-child(2) { left: 130px; top: -12px; } .container .card:nth-child(3) { left: 20px; top: 55px; } .container .card:nth-child(4) { left: 80px; top: 30px; } .progress_card { display: inline-block; background-color: white; border-radius: 4px; padding: 8px; line-height: 1.4; font-size: 14px; box-shadow: 0 2px 12px 0 rgb(0 0 0 / 60%); border: 1px solid #ebeef5; transition: border 0.35s; } .progress_card:hover { border: 1px solid mediumseagreen; } .progress_card .progress_card_title { font-weight: bold; margin-bottom: 4px; } .progress_card .progress_card_item { display: flex; } .progress_card .progress_card_item_title { width: 56px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; } .progress_card .progress_card_item_progress { position: relative; width: 80px; display: flex; align-items: center; margin: 0 6px; } .progress_card .progress_card_item_progress>div { height: 6px; border-radius: 4px; position: absolute; left: 0; /* top: 0; */ } .progress_card .progress_card_item_progress .progress_card_item_progress_real { background-color: mediumseagreen; z-index: 9; } .progress_card .progress_card_item_progress .progress_card_item_progress_bg { width: 100%; background-color: rgb(222, 225, 230); } .progress_card .progress_card_item_value {} 原因分析

这看着像是样式代码没生效呀?开发者工具调调看

调了一会儿,一切正常,但之前写的样式就是没有生效,害,你说气人不气人

再看了会儿,发现这背景图片、这黑色背景不都是同一个 style 标签里定义的吗?咋还生效生一半呢?

带着疑问还是确认了一遍,样式没写错,HTML 的 class 也是对应上了的(自己电脑生效了那肯定没写错呀...)

代码一模一样,咋就一台电脑行一台电脑不行呢?

排查了半天也没有发现原因,很是好奇,同时也想起了一句互联网黑话:

我的电脑上没问题,你电脑上跑不起来,肯定是你的问题,你自己看下

哈哈哈,玩笑归玩笑,这种问题还是头一次见,同样的代码,还是这么基础的代码,一台电脑行一台电脑不行,我还就不信邪了...

解决方案

无意间点到控制台的打印,跳到了 chrome 开发者工具的 source 标签里,往上翻了点,发现我写的 CSS 代码前面有个红点???

我点到 Element 标签里又确认了一下 CSS 样式,没问题呀!?

然后又切到 VSCode 里,发现也没问题呀?只不过有些样式(CSS 选择器)前面有个空格,难道这个空格是什么诡异的字符,没有被渲染出来?

将信将疑的把空格去掉了,刷新页面,唉?好像位置变了一下,再看了下 chrome 开发者工具的 source 标签里的页面代码,还是有小红点...

没删好?再来一次,好像还是不行

最后我干脆重新复制了一遍样式代码,哎?他就行了...

结论

1.我的推测是 VSCode 保存自动格式化插件出 bug 了...

因为我真的是复制过来的,最后的解决方案也是再复制了一遍...就说明代码是完全没问题的

2.后续代码有问题,排查不到原因可以看看 chrome 开发者工具的 source 标签里是否有标识错误或者异常?

或许只是这里把那个没渲染出来的空白字符给渲染出来了,并不是语法检查?后续可以测试一下后续再测试下能否检测 js 语法错误、html 语法错误


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3