为什么要加入<!doctype html>这个文档声明——IE怪异模式
调试了很久,发现了一个非常细微但又十分重要的问题,又一次我在对于文档声明类型的时候,声明了如下类型
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
然后,我在body里面写了两个div,并且定义了宽度和高度均为80px,padding上下左右均为20px,那么显然,对于w3c标准的话,整个盒子的外部大小应该是120*120px,
但是在IE下,我们发现宽度和高度是80*80px
IE下,我们可以发现,对于元素的宽度,他其实定义的是元素的内容宽度,所以显示的是80*80px
后来,
我修改了html文档声明:<!DOCTYPE html>
由于IE的宽度不仅仅包含了内容宽度,而且还包含了padding,其实IE这种表达方式更为科学,但由于历史和市场的发展,chrome,firefox等主流浏览器都以w3c为标准,而导致了元素在不同浏览器下的显示兼容问题
更改了文档声明之后,发现,此时的IE的宽度,和chrome一样,是不包含padding的,再加上padding以后,其宽度和高度就变为120X120,如图:
所以,我们在写html标签的时候,首要关键是要检查好文档声明类型,否则,在我们后期的兼容性调试的过程中,将会非常的费力且麻烦,由于我们的浏览器接收从服务器端发送过来的文档中,根据文档声明而进行解析,如果遇到了<!DOCTYPE html>,则表示我们的浏览器需对当前的文档以W3C的标准进行解析,所以这个声明是至关重要的
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Title</title>
<meta name="Keywords" content="">
<meta name="Description" content="">
<link rel="stylesheet" type="text/css" href="css/common.css" />
<link rel="stylesheet" type="text/css" href="css/inside.css" />
</head>
<body>
<div class="main">
</div>
<div class="main">
</div>
</body>
</html>
.main{
background-color: #a847c3;
width: 80px;
height: 80px;
padding: 20px 20px;
border: 1px solid #2C2C2C;
float: left;
}
为什么要加入<!doctype html>这个文档声明——IE怪异模式的更多相关文章
- 为何在有 DOCTYPE 的 HTML 文档之上仍然还会出现混杂模式?
不使用 DOCTYPE 一定会使 HTML 文档处于混杂模式,然而使用了 DOCTYPE,也不一定就能够使文档在所有浏览器中均处于标准模式. DOCTYPE 本身不就是一个“开关”吗?为何在有 DOC ...
- 文档声明(Doctype)和<!Doctype html>有何作用? 严格模式与混杂模式如何区分?它们有何意义?
文档声明的作用: 文档声明是为了告诉浏览器,当前HTML文档使用什么版本的HTML来写的,这样浏览器才能按照声明的版本来正确的解析. <!doctype html> 的作用就是让浏览器进入 ...
- HTML文档声明
前面的话 HTML文档通常以类型声明开始,该声明将帮助浏览器确定其尝试解析和显示的HTML文档类型.本文将详细介绍文档声明DOCTYPE 特点 文档声明必须是HTML文档的第一行.且顶格显示, ...
- HTML(一)HTML基础语法(HTML简介,HTML文档声明)
HTML 概念介绍 [概念] (Hyper Text Markup Language)超文本标记语言,是用来描述网页的一种语言 超文本(Hyper Text):不只包括文本,也可以包括图片.链接.音乐 ...
- Html5新特性之文档声明和头部信息
Html5推出的新内容比较多,本文我们来介绍两个重点内容,文档类型声明和头部信息. 无论是Html4.01还是XHtml1.0,所有文档的开头都会有文档声明<!DOCTYPE>标签来声明它 ...
- 课时14.DTD文档声明上(掌握)
1.什么是DTD文档声明? 由于HTML有很多格版本的规范,每个版本的规范之间又又一些差异,所以为了让浏览器能够正确的编译/解析/渲染我们的网页,我们需要在HTML文件的第一行告诉浏览器,我们当前这个 ...
- 文档声明和HTML样式表
文档声明 不是注释也不是元素,总是在HTML的第一行 书写格式:<!DOCTYPE HTML> 是用于通知浏览器目前文档正使用哪一个HTML版本(相关属性 lang) 若不写文档声明,浏览 ...
- HTML5入门:HTML5的文档声明和基本代码
HTML5的文档声明: HTML5的文档声明,不同于HTML4.0和XHTML,它精简了许多代码,只保留<!DOCTYPE html>开头,必须位于HTML5文档的第一行,它可以用来告诉浏 ...
- HTML&CSS基础-文档声明
HTML&CSS基础-文档声明 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.HTML的发展 1993年6月: HTML第一个版本 1995年11月: HTML2.0 ...
随机推荐
- CentOS 7.2 安装 Docker 1.12.3 版
本文出自http://www.cnblogs.com/scoter2008 1.强大的官方文档 https://docs.docker.com/engine/installation/linux/ce ...
- 设置输入域(input/textarea)中文本光标的位置
以前记录了一篇 将光标定位于输入框最右侧的实现方式 ,实现光标定位在文本的最末.这种需求往往在修改现有的文本.有时可能还需要把光标定位在首位,或者中间某个位置,这就需要实现一个更通用的方法. 这个方法 ...
- 002.ICMP--拼接ICMP包,实现简单Ping程序(原始套接字)
一.大致流程: 将ICMP头和时间数据设置好后,通过创建好的原始套接字socket发出去.目的主机计算效验和后会将数据原样返回,用当前时间和返回的数据结算时间差,计算出rtt. 二.数据结构: ICM ...
- docker-5 docker仓库
docker部署环境:CentOS release 6.5 (Final) Docker配置文件:/etc/sysconfig/docker 重要参数解释: -H 表示Docker Daemon绑定 ...
- JavaScript实现简单的双向绑定
很多的前端框架都支持数据双向绑定了,最近正好在看双向绑定的实现,就用Javascript写了几个简单的例子. 几个例子中尝试使用了下面的方式实现双向绑定: 发布/订阅模式 属性劫持 脏数据检测 发布/ ...
- 网络错误定位案例 ICMP host *** unreachable - admin prohibited
1. 环境 一台物理服务器 9.115.251.86,上面创建两个虚机,每个虚机两个网卡: vm1:eth0 - 9.*.*.232 eth1:10.0.0.14 vm2: eth0 - 9.8.*. ...
- 新版Microsoft Azure Web管理控制台 - Microsoft Azure New Portal - (1)
国际版Microsoft Azure的Preview Portal已经于12月2日正式GA,现在登录国际版的Microsoft Azure,默认就会进入Microsoft Azure New Port ...
- checkbox勾选判断
var xieYi=document.getElementById("xieYi"); if(!xieYi.checked){ alert("请先阅读并勾选购买协议!&q ...
- Scikit-Learn模块学习笔记——数据集模块datasets
scikit-learn 的 datasets 模块包含测试数据相关函数,主要包括三类: datasets.load_*():获取小规模数据集.数据包含在 datasets 里 datasets.fe ...
- 怎样用ZBrush中的shadowbox创建物体
ZBrush一直以方便著称业内各领域,模型师不需要在多个软件中编辑塑造模型,而在ZBrush用shadowbox创建物体的流程,在Tool面板上的Geometry子面板中,4.0版本引入了shadow ...