HTML开发中的一个问题
今天在研究JQuery的Datepicker的功能的时候,发现我自己写的html的效果与示例中的效果有差距,在经过不断的尝试之后,发现以下代码的不同:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
这句代码有很重要的意义,在添加了这个代码之后,整个的效果就是预想的效果了。
解释如下:
doctype的作用
doctype声明指出阅读程序应该用什么规则集来解释文档中的标记。在web文档的情况下,“阅读程序”通常是浏览器或者校验器这样的一个程序,“规则”则是w3c所发布的一个文档类型定义(dtd)中包含的规则。
每个dtd都包括一系列标记、attributes和properties,它们用于标记web文档的内容;此外还包括一些规则,它们规定了哪些标记能出现在其他哪些标记中。每个web建议标准(比如html 4 frameset和xhtml 1.0 transitional)都有自己的dtd。
假如文档中的标记不遵循doctype声明所指定的dtd,这个文档除了不能通过代码校验之外,还有可能无法在浏览器中正确显示。对于标记不一致的问题,浏览器相较于校验器来说更宽容。但是,不正确的doctype声明经常导致网页不正确显示,或者导致它们根本不能显示。
选择正确的doctype
为了获得正确的doctype声明,关键就是让dtd与文档所遵循的标准对应。例如,假定文档遵循的是xhtml 1.0 strict标准,文档的doctype声明就应该引用相应的dtd。另一方面,如果doctype声明指定的是xhtml dtd,但文档包含的是旧式风格的html标记,就是不恰当的;类似地,如果doctype声明指定的是html dtd,但文档包含的是xhtml 1.0 strict标记,同样是不恰当的。
有的时候,也可以根本不使用一个doctype声明。如果没有指定有效的doctype声明,大多数浏览器都会使用一个内建的默认dtd。在这种情况下,浏览器会用内建的dtd来试着显示你所指定的标记。对于一些临时性的、匆忙拼凑的文档(这种文档有许多),你确实可以考虑省略doctype声明,并接受浏览器的默认显示。
完全可以从头编写一个doctype声明,并让它指向自己选择的一个dtd。然而,由于大多数web文档都需要遵循由w3c发布的某个国际公认的web标准,所以那些文档通常都要包含以下标准doctype声明之一:
html 2:
<!doctype html public "-/ietf/dtd html 2.0/en">
html 3.2:
<!doctype html public "-/w3c/dtd html 3.2 final/en">
html 4.01 strict:
<!doctype html public "-/w3c/dtd html 4.01/en"
"http://www.w3.org/tr/html4/strict.dtd">
html 4.01 transitional:
<!doctype html public "-/w3c/dtd html 4.01 transitional/en"
"http://www.w3.org/tr/html4/loose.dtd">
html 4.01 frameset:
<!doctype html public "-/w3c/dtd html 4.01 frameset/en"
"http://www.w3.org/tr/html4/frameset.dtd">
xhtml 1.0 strict:
<!doctype html public "-/w3c/dtd xhtml 1.0 strict/en"
"http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd">
xhtml 1.0 transitional:
<!doctype html public "-/w3c/dtd xhtml 1.0 transitional/en"
"http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
xhtml 1.0 frameset:
<!doctype html public "-/w3c/dtd xhtml 1.0 frameset/en"
"http://www.w3.org/tr/xhtml1/dtd/xhtml1-frameset.dtd">
xhtml 1.1:
<!doctype html public "-/w3c/dtd xhtml 1.1/en"
"http://www.w3.org/tr/xhtml11/dtd/xhtml11.dtd">
xhtml 1.1 plus mathml plus svg:
<!doctype html public
"-/w3c/dtd xhtml 1.1 plus mathml 2.0 plus svg 1.1/en"
"http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">
除了上面列出的doctype声明,具有特殊要求的一些文档还使用了其他几种声明。
doctype声明通常是文档的第一行,要在<html>标记以及其他文档内容之前。注意,在xhtml文档中,doctype的前面偶尔会出现一条xml处理指令(也称为xml prolog):
<@xml version="1.0" encoding="utf-8"@>
为了确保网页正确显示和顺利通过验证,使用正确的doctype是关键。与内容相反的、不正确的或者形式错误的doctype是大量问题的罪魁祸首。在未来的专栏文章中,我还会具体解释如何诊断及纠正这些问题。
用dw设计网页时,新建一个文件,看代码最前面总要出现一个下面的东东,
<!doctype html public "-/w3c/dtd html 4.01 transitional/en"
"http://www.w3.org/tr/html4/loose.dtd">
这个是dw自动在网页文件页增加了dtd信息.可以删.
删除后,浏览器会使用的默认dtd.
HTML开发中的一个问题相关推荐
- 动态头像 Android 实现,Android开发中实现一个头像滑动变大变小功能
Android开发中实现一个头像滑动变大变小功能 发布时间:2020-11-21 16:36:20 来源:亿速云 阅读:74 作者:Leah 这篇文章给大家介绍Android开发中实现一个头像滑动变大 ...
- 记 QT 应用开发中的一个二进制兼容性问题
笔者在参与开发一个集成了 QT 的跨平台桌面应用程序,目标平台是 Windows 和 Mac.一段时间以来,运行 Windows 平台的应用程序时,不断地被类似于如下这样的崩溃问题所折磨. 这里提示说 ...
- 由安卓开发中的一个坑引发的问题解决之道浅析
博客: 安卓之家 微博: 追风917 CSDN: 蒋朋的家 简书: 追风917 扯扯 最近发生了好多事情,两会,google AI alphaGo 大战李世石,俘获无数少男少女心的韩国电视剧<太 ...
- Go开发中配置一个Logger日志的功能实现(结合zap日志库)
为什么需要Logger 一般在开发项目的时候我们都是需要一个存储日志的文件,因为在部署项目以后,我们只能通过去筛查日志进行检索问题,这时候日志是否可以呈现清晰这个对于我们进行排查工作是十分重要的,所以 ...
- 使用Oracle数据库开发中的一个技巧
此文章,对于使用.NET Framework也有参考意义. 首先,在JDBC中: Oracle的JDBC不直接支持一次执行多条语句.一种解决办法如下: String str = "BEGIN ...
- 前端开发中的性能那点事
前端开发中的性能那点事(一)巧用xdebug 前言: 在我们平时的php开发中,一个大的项目经过长时间的积累以后你会发现性能越来越慢,而性能到底消耗在了什么地方,常常是一个令人头疼的问题,funct ...
- 列举web开发中,为满足高性能的架构技术实现
在网站开发中,如果一个网站成功了,那技术问题,尤其是提高性能的技术问题也相应的解决了. 1.把网站的提供应用和数据库分开在两个物理的机器上.一个提供数据,一个显示数据.这个应该就是应用和数据库的物理分 ...
- B/S开发中浏览器的工具利器
B/S系统的前端浏览器性能和标准兼容方面是开发中的一个重要问题,把IE中使用的各种工具整理一下,对于开发中标准.规范检查等起到一个作用 主要是三个主流的浏览器和相关的插件 FireFox Firefo ...
- 了解 SharePoint 2010 开发中的关键点
**摘要:**了解为 Microsoft SharePoint 2010 规划和开发业务解决方案时必须做出的关键点. 上次修改时间: 2012年3月13日 适用范围: Business Connect ...
最新文章
- pytorch nn.Embedding
- [转]启动Tomcat提示:指定的服务未安装
- 助力全站WebP ,阿里云云上FPGA 团队发布 WebP图片解决方案
- 最佳海报样机模板|让作品脱颖而出
- dll文件用什么语言编写_为什么Unix不用功能更强大的C++而是用C编写
- ab plc软件_从GuardLogix 和 CIP Safety认识安全PLC控制器
- 【恋上数据结构】希尔排序
- Office编程中得到extend对象
- 批量测试Mybatis项目中Sql是否正确
- UniWebView3.8
- IP子网划分【网工复习专题】2022.5.8
- msxml6 C++
- 记关于DNS协议的一次学习(递归查询与迭代查询)
- Word如何让样式库中的样式不添加到自动生成的目录中
- [苹果开发者账号]01 使用Apple Developer app注册提示:未能验证证件
- RabbitMQ An unexpected connection driver error occured错误
- web前端html+css实现立体旋转相册(表白可用)
- 深入springboot怎么启动tomcat
- php java python c语言_两分钟速览Java、PHP、C语言、Python四大编程
- 大学生上网应“慎独”
热门文章
- lingo 一些函数
- 顺序队列相关操作(C语言实现)
- “No module named ‘vtk.util‘;‘vtk‘ is not a package”问题完美解决
- 利用startup.m文件设置matlab的Current Folder的默认文件夹
- PCIe例程理解(一)用户逻辑模块(接收)仿真分析
- 【 FPGA 】按键消抖与LED灯流动小实验
- 【 FPGA 】UltraFast设计方法学笔记(时钟)
- Scala函数的调用
- sql server 字符串转table
- linux日志显示too many open files解决