前言
啊哈。我又来跟自己较劲儿了。今天我要打破的是一个比较魔性的想法。
我不想写文章
其实我内心还是想写的,因为这周我给自己订的flag是写5篇,当然今天已经第5天,说啥也不能成功率为0吧。那太不靠谱了。
dtd
直接说出本文要说的东西吧。html中的知识点。说明2点即可
- dtd是什么
- dtd有啥用处
dtd是什么
直接回答:是文档类型定义的意思,英文是 document type define。然后可以通过 DOCTYPE 去声明。
说实话,不太确定,还是老老实实的查证下。
- 直接MDN上搜 DTD 没搜到
- 上Google搜索DTD,提示:"我们的系统检测到您的计算机网络中存在异常流量"
- 上Bing搜索DTD,点开 "DTD简介" 这篇文章(w3scholl)。
定义好像也没说啥,直接说了 dtd的用处,那好,直接说第2点。
dtd有啥用处
w3school中的解释
将w3school的用处摘录如下:
文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。DTD可被成行地声明于XML文档中,也可作为一个外部引用。
自己消化理解下:意思是主要为xml文档服务的。可以直接被DOCTYPE拿来内部定义,也可放在文件中,被DOCTYPE当做外部引用。
内部声明语法
<!DOCTYPE 根元素 [元素声明]>
内部声明实例
<?xml version="1.0"?>
<!DOCTYPE note [
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
外部引用语法
<!DOCTYPE 根元素 SYSTEM "文件名">
外部引用实例
<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "note.dtd">
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
我的解释
开发HTML的时候经常可以看到 DOCTYPE声明.
HTML5
尽然没有DTD,这块儿待查明原因,有知道的大佬可以评论区留言,不甚感激。
<!DOCTYPE html>
HTML 4.01 Strict
该 DTD 包含所有HTML元素和属性,但不包括展示性的和弃用的元素(比如font)。不允许框架集(Framesets)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
HTML 4.01 Transitional
该 DTD 包含所有HTML元素和属性,包括展示性的和弃用的元素(比如font)。不允许框架集(Framesets)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
HTML 4.01 Frameset
该 DTD 等同于HTML 4.01 Transitional,但允许框架集内容。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
小结
本文总结了如下2点内容。但总感觉有点啥都没说,待持续精进一下。
1、我打破了我的一个借口。做了不想做的事情,尽管写的不扎地,但可以改进
2、说明了啥是 DTD,就是文档类型定义,给浏览器看的。
3、介绍了 DTD 有啥用处。分别在 HTML 5 和 HTML4 的表现如何
小尾巴
留个思考小尾巴,假如面试官问"说一说你对dtd的理解",你会怎么回答呢?