HTML出现错位的问题

引起网页HTML显示错位的几个常见问题:

         1、在HTML代码中缺失元素的开始或结束标签

         2、CSS设置中对边界、填充或边框的设置超出了父级容器的范围

         3、CSS和HTML的编码不统一

         4、浏览器的解析问题(这个问题是最容易出现的,同时也是最难解决的)

以上4点大致可以归为引用网页HTML显示错位的元凶,现在,分别来讨论一下如何解决上述出现的4种问题

         1、在HTML代码中缺失元素的开始或结束标签

答:这个问题看似比较简单,但是也是大多数人最容易犯的问题,在现实的工作中,我们一般都是用开发工具,如Dreamweaver或Editplus等一些高级的编辑器,虽然这些工具在一定程度上减少了我们的工作量,但是随之出现的问题也多了起来,毕竟这些工具在做语法检测时,不可能做到像人工检查那样细致。所以当代码量达到一定的量的时候,就会乱,我们在修改其中内容时,如删除或修改都有可能只改了前一半,但是没有改后一半。出现这种情况,我们也要使用一些手段来应对,办法也很简单,那就是多写注释。(<!—此处是注释内容 -->)一个良好的代码工,对注释的要求也是非常高的。一个优秀的应用,同样也不可能少了注释。养成一样良好的书写习惯,为以后的工作奠定基础。

         2、CSS设置中对边界、填充或边框的设置超出了父级容器的范围

答:在解释这个问题之前,先让大家清楚一下子父级关系,如:

<div class=”layout”><!—布局div开始,该class样式中设置宽度为500px,高度为200px-->
    <table align=”center” border=”10” width=”500” height=”200”>
        <tr>
            <td>这里是内容</td>
        </tr>
    </table>
</div><!—布局div结束-->

 在上述代码中,div就为父级容器,而table就为子元素,看注释,在class样式中,明明对div设置的是宽500px,高200px;表格也设置的是宽500px,高200px。但是就是出现错位。是因为table中设置的border=”10”,这样就会为table的上下左右边框各加10px。所以实质上table的宽度为520px,高度为200px。这样一来,就超出了div的宽高,所以有可能会出现错位。修改方法,将div的宽高各加20px,或把table的宽高各减20px。

         3、CSS和HTML的编码不统一

答:这个问题出现的机率不大,但是也可能出现。废话少说,直奔主题,如CSS样式表文件的编码是GBK,而HTML的编码为UTF-8,这样你在HTML文件中使用link标签引用CSS样式表文件时,没错,但是在浏览器解析时会出错。原因有了,修改也很简单,将编码统一就OK了。步骤:记事本打开文件—另存为UTF-8(GBK)编码。

         4、浏览器的解析问题

答:这个问题是最容易出现的,因为在现实中我们所做的网站可能会在不同的浏览器下跑,所以这时候就得考虑浏览器的兼容性问题。先来解释一下浏览器不兼容是如何产生的,主流浏览器IE、Firefox、Google等,这些浏览器厂商为了让自己的浏览器的市场更广,所以不会去顾及标准,他们会以自己的解析为标准去解析HTML文件。这使得IE、Firefox、Google等浏览的解析标准是不同的,所以就产生了浏览器的不兼容。这是引起浏览器不兼容最原始的凶手,但是我们却改变不了这种现状,所以这点我们不考虑。我们要考虑的是规范自己的HTML和CSS代码。

  1. 规范HTML:这个相对来说比较容易,在HTML的头部都有一个DTD的约束,你只需要把这个DTD文件下载下来,然后查看这个DTD文件里的内容,这里面包含了一些HTML的书写规范,如一个页面中都可以出现哪些元素,这些元素都有哪些属性等等。只要将其看懂了,HTML自然也就规范了。在HTML规范这里要注意的是布局规范,好多朋友的代码看起来很强大,但其实上很乱。用了float后就要对父容器做出clear。
  2. 规范CSS:这个说起来比较困难,如CSS也是有许多不常见的写法的,如!important、_width:20px、max-height:60px等等一些比较怪异的写法。下面来一一解释。

a)         !important是改变优先级的,如有两个css文件同时定义了一个.layout{}的样式,但是其中的宽度不一样,一个是50px,一个是100px,这样写出来就会以后面调用那个起作用,但是你如果就想让前一个作用怎么办,加!important就可以了。写法:.layout{width:50px !important;}

b)         在样式前加下划线“_”,这是设置只在IE6内核浏览器下起作用的,有时候IE6和IE8显示效果不一样,就可以用这种方法来调试。写法:.layout{_width:20px;}

c)         Max和min,顾名思义,最大和最小。这种写法就是规定这个元素的最大值和最小值。如max-height就是说最大的高度是多少,如果不满最大值,则以height设置的为准。

d)         最后一点,在HTML中body,ul,ol,input,form,dd,dt,dl,h1,h2,h3,h4,h5,h6等元素默认是有margin和padding的。在用这前,我们可以将这些元素的margin和padding清0。

好了,说了这么多,希望HTML的爱好者们借鉴一下,也希望说的不对的地方,请大家提出宝贵的意见,帮助俊南多多提高自身能力。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值