<!DOCTYPE>标签的定义与用法。
<!DOCTYPE>的定义:
<!DOCTYPE>声明位于文档中的最前面的位置,处于<html>标签之前。此标签可告知浏览器文档使用哪种HTML或XHTML规范。doctype 声明不属于 HTML 标签
该标签可声明三种DTD类型,分别表示严格版本、过渡版本以及基于框架的HTML版本。(假如文档中的标记不遵循doctype声明所指定的DTD,这个文档除了不能通过代码校验之外,还有可能无法在浏览器中正确显示。)
<!DOCTYPE>的用法:
解析:在上面的声明中,声明了文档的根元素是 html,它在公共标识符被定义为 "-//W3C//DTD XHTML 1.0 Strict//EN" 的 DTD 中进行了定义。浏览器将明白如何寻找匹配此公共标识符的 DTD。如果找不到,浏览器将使用公共标识符后面的 URL 作为寻找 DTD 的位置。
- : 表示组织名称未注册。Internet 工程任务组(IETF)和万维网协会(W3C)并非注册的 ISO 组织。
+为默认,表示组织名称已注册。
DTD : 指定公开文本类,即所引用的对象类型。 默认为DTD。
HTML : 指定公开文本描述,即对所引用的公开文本的唯一描述性名称。后面可附带版本号。默认为HTML。
URL : 指定所引用对象的位置。
Strict:排除所有 W3C 专家希望逐步淘汰的代表性属性和元素。
三种HTML文档类型:
HTML 4.01 规定了三种文档类型:Strict、Transitional 以及 Frameset。
a ) 如果需要干净的标记,免于表现层的混乱,用HTML Strict DTD类型:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" " http://www.w3.org/TR/html4/strict.dtd">
b )Transitional DTD 可包含 W3C 所期望移入样式表的呈现属性和元素. 如果用户使用了不支持层叠样式表(CSS)的浏览器以至于你不得不使用 HTML 的呈现特性时,用 Transitional DTD 类型:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " http://www.w3.org/TR/html4/loose.dtd">
c ) 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">
HTML5:
HTML 4.01 与 HTML 5 之间的差异在 HTML 4.01 中有 3 个不同的文档类型,在 HTML 5 中只有一个:
HTML 4.01 中的 doctype 需要对 DTD 进行引用,因为 HTML 4.01 基于 SGML。而 HTML 5 不基于 SGML,因此不需要对 DTD 进行引用,但是需要 doctype 来规范浏览器的行为(让浏览器按照它们应该的方式来运行。)。
块级元素和行内元素都有哪些?
块元素(block element) ◎ address – 地址 ◎ blockquote – 块引用 ◎ center – 举中对齐块 ◎ dir – 目录列表 ◎ div – 常用块级容易,也是css layout的主要标签 ◎ dl – 定义列表 ◎ fieldset – form控制组 ◎ form – 交互表单 ◎ h1 – 大标题 ◎ h2 – 副标题 ◎ h3 – 3级标题 ◎ h4 – 4级标题 ◎ h5 – 5级标题 ◎ h6 – 6级标题 ◎ hr – 水平分隔线 ◎ isindex – input prompt ◎ menu – 菜单列表 ◎ noframes – frames可选内容,(对于不支持frame的浏览器显示此区块内容 ◎ noscript – 可选脚本内容(对于不支持script的浏览器显示此内容) ◎ ol – 排序表单 ◎ p – 段落 ◎ pre – 格式化文本 ◎ table – 表格 ◎ ul – 非排序列表 内联元素(inline element) ◎ a – 锚点◎ abbr – 缩写 ◎ acronym – 首字 ◎ b – 粗体(不推荐) ◎ bdo – bidi override ◎ big – 大字体 ◎ br – 换行 ◎ cite – 引用 ◎ code – 计算机代码(在引用源码的时候需要) ◎ dfn – 定义字段 ◎ em – 强调 ◎ font – 字体设定(不推荐) ◎ i – 斜体 ◎ img – 图片 ◎ input – 输入框 ◎ kbd – 定义键盘文 ◎ label – 表格标签 ◎ q – 短引用 ◎ s – 中划线(不推荐) ◎ samp – 定义范例计算机代码 ◎ select – 项目选择 ◎ small – 小字体文本 ◎ span – 常用内联容器,定义文本内区块 ◎ strike – 中划线 ◎ strong – 粗体强调 ◎ sub – 下标 ◎ sup – 上标 ◎ textarea – 多行文本输入框 ◎ tt – 电传文本 ◎ u – 下划线 ◎ var – 定义变量 可变元素 可变元素 为根据上下文语境决定该元素为块元素或者内联元素。 ◎ applet – java applet ◎ button – 按钮 ◎ del – 删除文本 ◎ iframe – inline frame ◎ ins – 插入的文本 ◎ map – 图片区块(map) ◎ object – object对象 ◎ script – 客户端脚本
你真的了解HTML吗? 雅虎面试题
有这么一段HTML,请挑毛病:
<P> 哥写的不是HTML,是寂寞。<br><br> 我说:<br> 不要迷恋哥, 哥只是一个传说
言归正传。这道题的考点:
考点1:html和 xhtml的区别
这行代码在html 4.01 strict下是完全正确的,在xhtml 1.0 strict下是错误一堆的。所以明显是一个考点。在xhtml下所有标签是闭合的,p,br需要闭合, 标签不允许大写,P要小写。同时nbsp和br必须包含在容器里。html下这些都不是错。p在html里是可选闭合标签,是可以不用闭合的。
这个考点告诉你xhtml是多么苛刻。这是基本考点,答对,你能拿到60分。
考点2:考样式分离
用nbsp控制缩进是不合理的。应该用CSS干这事。所以应该删掉nbsp
考点3:合理使用标签
br是强制折行标签,p是段落。原题用连续的br制造两个段落的效果,效果是达到了,但显然用的不合理,段落间距后期无法再控制。正确的做法是用两个p表现两个段落。“我说”后面是正常的文字折行用br是合理的。
上面全答对,你就能拿到100分。
对原题改进的结果:
html 4.01: <p>哥写的不是HTML,是寂寞。<p>我说:<br> 不要迷恋哥,哥只是一个传说
xhtml 1.0:
<p>哥写的不是HTML,是寂寞。</p><p>我说:<br /> 不要迷恋哥,哥只是一个传说</p>
加分:合理的用语义化标签
在前面的基础上合理的用语义化标签,对内容进行必要的标记,是加分的。但过度的使用标签,就画蛇添足了。如“我说”的话,可以用q标签标注。
<p>哥写的不是HTML,是寂寞。
<p>我说:<br> <q>不要迷恋哥,哥只是一个传说</q>
我觉得这就够了,如果再进一步,“我”用cite标注,“HTML” 用abbr或acronym标注(至于再讨论abbr和acronym的区别就太较真了),也OK。再复杂就没必要了。
<p> 哥写的不是<abbr title=”Hyper Text Markup Language”>HTML</abbr>,是寂寞。
<p><cite> 我</cite>说:<br> <q>不要迷恋哥,哥只是一个传说</q>