有关HTML <!DOCTYPE> 标签


        最近,在写一个JSP页面时,发现自己想调用的javascript代码功能使用异常,这段js代码主要实现某一区域(panel)的隐藏、显示。具体使用过程是:在将定义一panel里面放置输入框实现查询条件的输入,放置查询按钮,在该panel下放置一个按钮,点击该按钮或点击查询按钮后可以实现该panel向上滑动,从而达到该区域(panel)的自动隐藏,点击panel下的按钮可使区域向下滑动显示出内容。

  这段功能的实现,是通过一段js代码实现的,以前一直没有问题,但这次使用却发现一个问题:即每次在向上、向下 滑动时,总是会“闪”一下。jsp/js代码是在执行正确的jsp页面拷贝过来的,所以,js代码不会有任何问题,代码结构与正确的jsp页面对比也无问题。对比调用的其它js代码也无问题。最后从jsp页面最开始处对比代码,发现jsp页面的第一行就出现问题:没有声明HTML<!DOCTYPE>

代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

在w3school中找到有关DOCTYPE的说明:

定义和用法

<!DOCTYPE> 声明位于文档中的最前面的位置,处于 <html>标签之前。此标签可告知浏览器文档使用哪种 HTML 或 XHTML 规范。

该标签可声明三种 DTD类型,分别表示严格版本、过渡版本以及基于框架的 HTML文档。

示例:

<!DOCTYPE html

PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

 

像我的jsp页面使用的就是过渡版本(Transitional)

在上面的声明中,声明了文档的根元素html,它在公共标识符被定义为 "-//W3C//DTD XHTML 1.0 Strict//EN" 的 DTD 中进行了定义。浏览器将明白如何寻找匹配此公共标识符的 DTD。如果找不到,浏览器将使用公共标识符后面的 URL 作为寻找 DTD 的位置。

(注:DTD(文档类型定义)的作用是定义 XML 文档的合法构建模块。它使用一系列的合法元素来定义文档结构。)

以下均是w3school教程中的内容,链接:http://www.w3school.com.cn/tags/tag_doctype.asp

HTML

HTML 4.01 规定了三种文档类型:Strict、Transitional 以及 Frameset。

HTML Strict DTD

如果您需要干净的标记,免于表现层的混乱,请使用此类型。请与层叠样式表(CSS)配合使用:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "
http://www.w3.org/TR/html4/strict.dtd">

HTML Transitional DTD

Transitional DTD 可包含 W3C所期望移入样式表的呈现属性和元素。如果您的读者使用了不支持层叠样式表(CSS)的浏览器以至于您不得不使用 HTML 的呈现特性时,请使用此类型:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
http://www.w3.org/TR/html4/loose.dtd">

Frameset DTD

Frameset DTD 应当被用于带有框架的文档。除 frameset元素取代了 body 元素之外,Frameset DTD 等同于 Transitional DTD:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "
http://www.w3.org/TR/html4/frameset.dtd">

XHTML

XHTML 1.0 规定了三种 XML文档类型:Strict、Transitional 以及 Frameset。

XHTML Strict DTD

同上(写者略)

XHTML Frameset DTD

当您希望使用框架时,请使用此 DTD

<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

如需检查你是否编写了带有正确 DTD 的合法 XHTML 文档,您可以把您的 XHTML 页面链接到一个 XHTML 验证器。

 

  其实现在我对具体原理还不太懂,也不知到底为什么加一这段声明后,“闪”的毛病就“治癒”了,但看来,要养成加<!DOCTYPE>的好习惯,遵守w3c。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值