当前位置: 首页 > Web前端 > HTML

前端BUG解决

时间:2023-04-02 18:30:00 HTML

是的!我正在写一个错误!不管你是新手还是高手,写bug都是难免的,遇到bug怎么办?不要恐慌!毛主席教导我们要“战略上鄙视BUG,战术上重视BUG”!前端遇到的bug不外乎三个方面:结构层(HTML)、表现层(CSS)、行为层(JavaScript)。1、结构层(HTML)HTML错误的主要原因是没有很好地理解规范,布局不符合规范。在网上查到的很多常见的HTNML错误都是这样的:错误一、标签嵌套混乱示例一:比如常见的p标签嵌套div标签

我是一个段落

我是一个块级元素
我是一个段落

浏览器解析后变成这样例2:结束标签缺失,或者结束标签的时机不对。有的时候往往是某个标签没有闭合,导致整个布局乱了。/*错误码*/
1111

2222

3333

aaa/*正确码*/
1111

2222

3333

aaa错误原因:DTD规定块级元素不能放在P时块元素包含在P标签中,它会先结束自己。作为旁注,内联元素不能包含块元素。解决方法:如上图所示,在谷歌浏览器中按F12(command+option)打开控制台查看元素。误区二、滥用br标签br标签是用来换行的,用来增加行间距和行内元素之间的换行。/*错误码*/

我是一个句子

我是一个句子

我是一个句子




我是链接
我是链接
我是一个链接

/*正确代码*/

我是一个句子
我是一个句子
我是一个句子

  • 我是链接
  • 我是链接
  • 我是链接
错误原因:br标签的作用是断行。由于间距的增加,具体间距无法准确给出。作为列表,不能明确表示这是一个列表。解决方法:通常使用line-height来调整行间距,使用padding来解决段落间距。这样也可以很好的实现结构风格的分离。误区三、使用内联样式为了代码结构清晰,结构样式分离,不推荐使用内联样式。另外,当有行为层的时候,我们通过js改变的多是内联样式。在结构上使用内联样式会导致很多麻烦。/*错误代码*/
/*正确代码*/
//使用样式表定义样式。我不会在这里一一列举。遇到有代表性的问题欢迎留言!参考:10种常见的HTML标签错误方式总结:结构层(HTML)问题的解决方法是在谷歌浏览器上按F12(command+option)打开控制台,看看元素结构是否和你想象的一样。2.表现层(CSS)由于某些原因,粗心大意,漏掉了末尾的分号或花括号},所以下面的样式就不行了。或由拼写错误的单词引起的无效样式。开发过程中建议使用带有代码提示和自动补全功能的编辑器(如WebStorm)。学习练习时使用手写编辑器。CSS错误主要来自对CSS权重的无知。排除粗心通常是设置样式不起作用的原因。错误一:z-index不起作用,或者负边距值影响z-index?.p{背景颜色:红色;宽度:200px;高度:100px;位置:相对;z-index:1}div{background-color:green;width:200px;高度:100px;margin-top:-50px;z-index:999}

我是一个段落

我是一个块
报错的原因是定位影响层级,而定位元素的层次高。z-index无效。此外,浮动元素也会影响层次结构。解决思路:查找CSS错误的完整步骤总结:表现层(CSS)解决方案是利用浏览器的元素检查功能来检查你的元素,并在元素中添加内联样式来测试它是否有效。如果你的css样式经常不起作用。请仔细阅读以下两篇文章:css权重和css常用的排序方式。权重分配错误2:使用background-image设置渐变背景时,设置background:none在悬停时无效,仍然是渐变背景。解决方法:设置background-image:none,悬停时清除渐变背景。错误三:有的浏览器正常,有的浏览器不正常。这个主要是为了css3的兼容,低版本的ie没有考虑。抵制垃圾浏览器从我做起!例如display:flexdisplay:-webkit-flex错误原因:没有兼容处理;解决方案:CSS3新特性、兼容性、兼容方法总结3.行为层(JavaScript)错误1:找不到对象示例:
当我们运行这段代码时,报错“UncaughtTypeError:Cannotsetproperty'innerHTML'ofnull”/AJAX_TEST/selector_test.html(43)这时候我们只需要根据错误提示找到错误行(43)。这时候我们会发现这段代码document.querySelector("#div1>div").innerHTML="firstdiv";错误原因是document.querySelector("#div1>div")选择器找不到元素节点,然后我们根据选择器
发现元素节点被注释掉了,我们取消注释就OK了。解决方法:查看谷歌浏览器控制台是否有错误。如果有错误,根据错误提示,直接找到报错的代码行。使用注释方式或者alert输出方式查找原因。错误二:方法/变量未定义例如:部分浏览器不支持通过类名获取元素。解决方法:用if判断如果浏览器支持怎么出去,不支持怎么处理。兼容性处理如下functiongetClass(n){if(document.getElementsByClassName){returndocument.getElementsByClassName(n);}else{varobjArr=document.getElementsByTagName('*');变种arrClass=[];for(vari=0;i