博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
web前端面试题合集 (HTML相关)
阅读量:5310 次
发布时间:2019-06-14

本文共 3556 字,大约阅读时间需要 11 分钟。

<!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>&nbsp;&nbsp;哥写的不是HTML,是寂寞。<br><br>&nbsp;&nbsp;我说:<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>

 

 

转载于:https://www.cnblogs.com/newyorker/archive/2012/07/20/2600443.html

你可能感兴趣的文章
redis的hash与string区别
查看>>
转载 python多重继承C3算法
查看>>
初用Ajax
查看>>
zabbix 2.2.20 安装详解(Centos6.9)
查看>>
【题解】 bzoj1597: [Usaco2008 Mar]土地购买 (动态规划+斜率优化)
查看>>
css文本溢出显示省略号
查看>>
SQL_Server_2008完全学习之第十章触发器
查看>>
git安装和简单配置
查看>>
C# FTP远程服务器返回错误:(550) 文件不可用(例如,未找到文件,无法访问文件)...
查看>>
面向对象:反射,双下方法
查看>>
利用matplotlib绘画出二特征的散点图
查看>>
RabiitMq
查看>>
WebForm 发送邮箱
查看>>
鼠标悬停提示文本消息最简单的做法
查看>>
# C++中对PI的引用
查看>>
Java面向对象重要关键字
查看>>
美女CEO三十感言--大家都是出来卖的
查看>>
C、JAVA存储管理不同点
查看>>
课后作业-阅读任务-阅读提问-2
查看>>
rtmp服务器以及rtmp推流/拉流/转发
查看>>