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代码。
- 规范HTML:这个相对来说比较容易,在HTML的头部都有一个DTD的约束,你只需要把这个DTD文件下载下来,然后查看这个DTD文件里的内容,这里面包含了一些HTML的书写规范,如一个页面中都可以出现哪些元素,这些元素都有哪些属性等等。只要将其看懂了,HTML自然也就规范了。在HTML规范这里要注意的是布局规范,好多朋友的代码看起来很强大,但其实上很乱。用了float后就要对父容器做出clear。
- 规范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的爱好者们借鉴一下,也希望说的不对的地方,请大家提出宝贵的意见,帮助俊南多多提高自身能力。
HTML出现错位的问题的更多相关文章
- [LeetCode] Anagrams 错位词
Given an array of strings, return all groups of strings that are anagrams. Note: All inputs will be ...
- div错位/解决IE6、IE7、IE8样式不兼容问题
IE6里DIV错位的问题 原文:chinafine 采用”FLOAT:LEFT“的DIV在IE8.IE7.都没问题,IE6下却向下移动,出现空白.这是因为,IE6采用的内核默认把DIV之间的距离 ...
- android listview 异步加载图片并防止错位
网上找了一张图, listview 异步加载图片之所以错位的根本原因是重用了 convertView 且有异步操作. 如果不重用 convertView 不会出现错位现象, 重用 convertVie ...
- css通用小笔记03——浏览器窗口变小 div错位的问题
我最近写网页的时候,经常碰到一个普遍的问题,经过我的查阅和尝试,终于解决了这一问题,这里有两种方法提供给大家,如果博友还有更好的方法,欢迎补充. 一.使用min-width属性: 我们先看看下面这段代 ...
- Android中ListView错位布局实现(无聊向)
由于某些原因,需要个错位的页面,在网上找不到好的例子,试着动手写了写. 不考虑配色的完成图如下: 首先考虑的是,listview每一行左右都有可能缩进. 先假设一行的布局就是ImageView,Tex ...
- easyui使用datagrid时列名包含特殊字符导致表头与数据错位的问题
做一个用easyui的datagrid显示数据的功能时发现表格的列头与数据错位了,而且这个现象不总是能重现,一直没搞清楚原因.后来偶然在控制台看出了一点端倪: 推测表头或者单元格的class名应该是用 ...
- ofo走出校园观察:市场定位导致产品错位?
Ofo和摩拜单车虽然同样都是做单车共享,但实际上两者在最初的市场定位是有明显的差异的,因此提供的产品方案也存在巨大的差异. 市场定位不同,导致产品方案的巨大差异 摩拜单车一开始就定位于开放市场,充分的 ...
- sqoop中,如果数据中本身有换行符,会导致数据错位
sqoop中,如果数据中本身有换行符,会导致数据错位: 解决办法: 在sqoop import时修改配置文件 sudo -u hive sqoop import --connect jdbc:mysq ...
- 解决iphone填写表单时,表单项获取焦点时往下拉屏,导致顶部标题栏下滑错位
$(function () { //解决iphone填写表单时,表单项获取焦点时往下拉屏,导致顶部标题栏下滑错位 var u = navigator.userAgent; var isiOS = !! ...
- ubuntu14.04 键盘错位小问题
分享一个ubuntu14.04里的小问题,不知道有没有人跟我一样悲催 问题: 键盘错位了,@和"两个符合正好颠倒,~#这几个也错乱了,~符号跑到了|上,#跑到了shift+|上,这个问题在敲 ...
随机推荐
- 悟透JavaScript(二)
初看原型 prototype源自法语,软件界的标准翻译为“原型”,代表事物的初始形态,也含有模型和样板的意义.JavaScript中的prototype概念恰如其分地反映了这个词的内含,我们不能将其理 ...
- doubi -- 初创
doubi -- 初创 [背景分析] 一直在苦苦探寻人生的价值和意义.在这"二八"年华,对IT工作有点厌倦了.每天都是无休止地问题定位,需求会议.碎片化的时间写出来的代码都是无比的 ...
- Echarts数据可视化series-scatter散点图,开发全解+完美注释
全栈工程师开发手册 (作者:栾鹏) Echarts数据可视化开发代码注释全解 Echarts数据可视化开发参数配置全解 6大公共组件详解(点击进入): title详解. tooltip详解.toolb ...
- 基于HTML5和WebGL的3D网络拓扑结构图
现在,3D模型已经用于各种不同的领域.在医疗行业使用它们制作器官的精确模型:电影行业将它们用于活动的人物.物体以及现实电影:视频游戏产业将它们作为计算机与视频游戏中的资源:在科学领域将它们作为化合物的 ...
- 根据Dockerfile创建docker dotnet coer 镜像
那我们先来看看Dockerfile文件内容,注意这个文件是没后缀名的. #依赖原始的镜像,因为我们是要创建dotnet coer镜像,所以我就用了官方给的镜像[microsoft/dotnet:lat ...
- 张高兴的 Windows 10 IoT 开发笔记:三轴数字罗盘 HMC5883L
注意,数据不包含校验,准确的来说我不知道怎么校验,但方向看起来差不多是对的... GitHub:https://github.com/ZhangGaoxing/windows-iot-demo/tre ...
- Python学习笔记(十)
Python学习笔记(十): 装饰器的应用 列表生成式 生成器 迭代器 模块:time,random 1. 装饰器的应用-登陆练习 login_status = False # 定义登陆状态 def ...
- java zip解压
/** * 解压文件到指定目录 * @param zipFile * @param descDir * @author sqdll */@SuppressWarnings("rawtypes ...
- NIO FileChannel
NIO提供了比传统的文件访问更好的访问方法,NIO有两个优化的方法:一个是 FIleChannel.transferTo FileChannel.transferFrom,另一个是FileChanne ...
- 基于webuploader.js的单图片上传封装
HTML代码 <div class="manageImgUp">点击图片上传</div> <div class="manageImgUpLc ...