1.什么是html

      HTML(Hyper Text Mark-up Language )即超文本标记语言,是 WWW 的描述语言,由 Tim Berners-lee提出。设计 HTML 语言的目的是为了能把存放在一台电脑中的文本或图形与另一台电脑中的文本或图形方便地联系在一起,形成有机的整体,人们不用考虑具体信息是在当前电脑上还是在网络的其它电脑上。这样,你只要使用鼠标在某一文档中点取一个图标,Internet就会马上转到与此图标相关的内容上去,而这些信息可能存放在网络的另一台电脑中。 
     HTML文本是由 HTML命令组成的描述性文本,HTML 命令可以说明文字、 图形、动画、声音、表格、链接等。 HTML的结构包括头部 (Head)、主体 (Body) 两大部分。头部描述浏览器所需的信息,主体包含所要说明的具体内容。


2.对WEB标准以及W3C的理解与认识

WEB标准不是某一个标准,而是一系列标准的集合。网页主要由三部分组成:结构(Structure)、表现(Presentation)和行为(Behavior)。对应的标准也分三方面:结构化标准语言主要包括XHTML和XML,表现标准语言主要包括CSS,行为标准主要包括对象模型(如W3C DOM)、ECMAScript等。这些标准大部分由万维网联盟(外语缩写:W3C)起草和发布,也有一些是其他标准组织制订的标准,比如ECMA(European Computer Manufacturers Association)的ECMAScript标准。

(1)web标准规范要求,书写标签必须闭合、标签小写、不乱嵌套,可提高搜索机器人对网页内容的搜索几率。--- SEO
(2)建议使用外链css和js脚本,从而达到结构与行为、结构与表现的分离,提高页面的渲染速度,能更快地显示页面的内容。
(3)样式与标签的分离,更合理的语义化标签,使内容能被更多的用户所访问、内容能被更广泛的设备所访问、更少的代码和组件, 从而降低维护成本、改版更方便
(4)不需要变动页面内容,便可提供打印版本而不需要复制内容,提高网站易用性

        遵循w3c制定的web标准,能够使用户浏览者更方便的阅读,使网页开发者之间更好的交流。

3.HTML与XHTML有什么差别

HTML与XHTML之间的差别,粗略可以分为两大类比较:一个是功能上的差别,另外是书写习惯的差别。关于功能上的差别,主要是XHTML可兼容各大浏览器、手机以及Pad,并且浏览器也能快速正确地编译网页。

XHTML的规则区别:

1.所有的标记都必须要有一个相应的结束标记

2.所有标签的元素和属性的名字都必须使用小写

3.所有的XML标记都必须合理嵌套

4.所有的属性必须用引号""括起来

5.把所有<和&特殊符号用编码表示

6.给所有属性赋一个值

7.不要在注释内容中使“--”

8.图片必须有说明文字

9.不允许使用target="_blank"

从XHTML1.1开始全面禁止target属性,如果想要有开新窗口的功能,就必须改写为rel="external",并搭配JavaScript实现此效果。

错误:<a href="http://blog.mukispace.com" target="_blank">MUKI space</a>

正确:<a href="http://blog.mukispace.com" rel="external">MUKI space</a>

严格模式的文档在IE下需要写成这样:<a href="document.html" rel="external">打开一个新窗口</a> 
这是符合strict标准的方法。当然还必须配合一个javascript才有效。 
javascript 完整的代码JS如下[object Object]: 
function externallinks() { 
if (!document.getElementsByTagName) return; 
var anchors = document.getElementsByTagName("a"); 
for (var i=0; i<anchors.length; i++) { 
var anchor = anchors[i]; 
if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external") 
anchor.target = "_blank"; 
} 
} 
window.onload = externallinks; 
你可以把它保存成一个.js文件(比如external.js),然后通过外部联接方法调用:<script type="text/javascript" src="external.js"></script>
4.Doctype? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义?

混杂模式是一种比较宽松的向后兼容的模式 。混杂模式通常模拟老式浏览器的行为,以防止老站点无法工作 。 

混杂模式(quirks mode) //让IE的行为与(包含非标准特性的)IE5相同
标准模式(standards mode)//让IE的行为更接近标准行为
准标准模式(almost standards mode)//这种模式下的浏览器特性有很多都是符合标准的,不标准的地方主要体现在处理图片间隙的时候(在表格中使用图片时问题最明显)。
超级标准模式://IE8引入的一种新的文档模式,超级文档模式可以让IE以其所有版本中最符合标准的方式来解释网页内容。

  • 触发混杂模式: 
    如果在文档开始处没有发现文档类型声明,则所有浏览器都会默认开启混杂模式。但采用混杂模式不是什么值得推荐的做法,因为不同浏览器在这种模式下的行为差异非常大,如果不使用某些hack技术,跨浏览器的行为根本就没有一致性 可言。

    根据Doctype是否存在以及使用哪种DTD来触发其不同的模式。如果Doctype不存在或者其形式不正确那么默认为混杂模式。如果XHTMLl文档中包含完整的Doctype,那么它一般以标准模式呈现。 

       区分它们的意义可以让开发者更好的写出标准兼容的页面,同时不影响以前的页面标准。


5.行内元素有哪些?块级元素有哪些?


 块元素(block element) HTML标签分类明细 
    * 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) HTML标签分类明细 

    * 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 - 定义变量


可变元素  HTML标签分类明细 

    * applet - java applet   
    * button - 按钮   
    * del - 删除文本   
    * iframe - inline frame   
    * ins - 插入的文本   
    * map - 图片区块(map)   
    * object - object对象   
    * script - 客户端脚本

6.行内元素与块级元素有什么不同?

块级元素和行内元素的区别是,块级元素会占一行显示,而行内元素可以在一行并排显示。

通过样式控制,它们可以相互转换。

1.尺寸-块级元素和行内元素之间的一个重要的不同点

设置宽度width 无效。
设置高度height 无效,可以通过line-height来设置。
设置margin 只有左右margin有效,上下无效。
设置padding 只有左右padding有效,上下则无效。

注:这里说的无效, 是指,它对其它元素的排列没有影响。也就是说,对于设置的margin,padding行内元素文档流里的上下元素来说,他们的间距不会因为上下margin或者上下padding而产生间距。但是就他本身而言,对于上下margin与padding是有效的。

7.CSS的盒模型?

1、W3C的标准Box Model:

 /*外盒尺寸计算(元素空间尺寸)*/   
 Element空间高度 = content height + padding + border + margin   
 Element 空间宽度 = content width + padding + border + margin   
 /*内盒尺寸计算(元素大小)*/   
 Element Height = content height + padding + border (Height为内容高度)   
 Element Width = content width + padding + border (Width为内容宽度)

2、IE)传统下Box Model(IE6以下,不含IE6版本或“QuirksMode下IE5.5+”):

/*外盒尺寸计算(元素空间尺寸)*/   
Element空间高度 = content Height + margin (Height包含了元素内容宽度,边框宽度,内距宽度)  
Element空间宽度 = content Width + margin (Width包含了元素内容宽度、边框宽度、内距宽度)  
/*内盒尺寸计算(元素大小)*/  
Element Height = content Height(Height包含了元素内容宽度,边框宽度,内距宽度)  
Element Width = content Width(Width包含了元素内容宽度、边框宽度、内距宽度)

8.DOM是什么

文件对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口。

9.请解释一下什么是语义化的HTML。语义化HTML的优点

根据内容的结构化(内容语义化),选择合适的标签(代码语义化)便于开发者阅读和写出更优雅的代码的同时让浏览器的爬虫和机器很好地解析。

语义化HTML优点:

1,去掉或者丢失样式的时候能够让页面呈现出清晰的结构

2,有利于SEO:和搜索引擎建立良好沟通,有助于爬虫抓取更多的有效信息:爬虫依赖于标签来确定上下文和各个关键字的权重;

3,方便其他设备解析(如屏幕阅读器、盲人阅读器、移动设备)以意义的方式来渲染网页;

4,便于团队开发和维护,语义化更具可读性,是下一步吧网页的重要动向,遵循W3C标准的团队都遵循这个标准,可以减少差异化。

写html时注意点:

尽可能少的使用无语义的标签div和span;

在语义不明显时,既可以使用div或者p时,尽量用p, 因为p在默认情况下有上下间距,对兼容特殊终端有利;

不要使用纯样式标签,如:b、font、u等,改用css设置。

需要强调的文本,可以包含在strong或者em标签中(浏览器预设样式,能用CSS指定就不用他们),strong默认样式是加粗(不要用b),em是斜体(不用i);

使用表格时,标题要用caption,表头用thead,主体部分用tbody包围,尾部用tfoot包围。表头和一般单元格要区分开,表头用th,单元格用td;

表单域要用fieldset标签包起来,并用legend标签说明表单的用途;

每个input标签对应的说明文本都需要使用label标签,并且通过为input设置id属性,在lable标签中设置for=someld来让说明文本和相对应的input关联起来。