感觉今天有点慌乱。
1. HTML、XML、XHTML有什么区别?
distingush
下面从几个方面来比较一下。
- HTML:HyperText Markup Language
扩展性:不支持扩展。
侧重点:侧重于如何表现信息
语法要求:html语言语法要求不严格,但由于先实践后制定标准,支持的浏览器较多,不能一下推翻重来。
可读性:html可读性较差,不利于维护。
数据和显示关系:内容描述和显示整合唯一,网络数据的描述和转换方面不如XML
- XML:Extensible Markup Language
扩展性:支持扩展,可定义新的语言。
侧重点:如何结构化的描述信息。
语法要求:较为严格,严格要求嵌套、配对、遵循DTD树形结构
可读性:xml可读性好,利于维护。
数据和显示关系:内容描述和显示分离。常用于网络数据的描述和转换
** 既然XML这么好,为什么还在用HTML? **
那是因为HTML先使用再制定的标准,然后废除HTML的代价是很多网站都要重做。
- XHTML:
基于XML的标记语言。
本质上是一个过渡品,实现HTML向XML过渡。它结合部分XML的强大功能和大多数HTML简单特性,语言要求规范严格,算是更严谨更纯净的HTML,大多数浏览器也支持。
参考:http://wenda.so.com/q/1398092980061230?src=110
2. 怎样理解语义化
语义化在我的理解就是用正确的标签做正确的事情,即根据内容结构选择合适的标签。
暂时想到的:
- 对于文章标题可以用专门的
<hx>
标签来写,当然你也可以用其他标签例如<strong>、<em>
等标签来实现。 - 邮箱地址等。
语义化好处:
- 便于搜索引擎及爬虫工具更容易读懂页面代码。爬虫依赖的是标签的权重值,不会关注页面本身。
- 便于屏幕阅读器读懂,就类似于读句子和读单词的区别。
- 便于开发者开发和维护,阅读者阅读源代码。
以后写代码要注意的事
能不写<div>
就不写,因为它也是无意义的。
对于id等其他类命名的时候多用合理的语言解释。这应该也是语义化吧?
参考:http://www.jianshu.com/p/55a7e598957f
3.怎样理解样式分离
html负责结构,CSS负责样式,JS负责行为
样式分离我的低级理解就是,在写HTML结构的时候,不要加样式,样式通过外部式样式link到网页结构中去,更要避免内联式CSS。类似于设计框架结构的房屋的时候,先做梁、柱,基础。其他的墙怎么砌,怎么装修完全等框架搭建好再做。
分离的好处
结构清晰,便于开发和维护。如果整体布局不变,只替换CSS效果就可以实现,节省很多时间。
4.常见的<meta>标签有哪些?
<meta>标签定义与文章想关联的名称/值
基本用法:<meta name=" " content=" ">
常见的标签:
<meta charset='utf-8'>//字符编码为UTF-8.
<meta http-equiv='X-UA-Compatible' content='iE=edge,chrome=1'>//告知浏览器用新版本的IE和CHROME来渲染页面
<meta name='viewport' content='width=device-width,initial-scale=1'>//经常用在移动端开发要用的,具体是告诉浏览器,窗口宽度=浏览器宽度,初始缩放比例是100%,禁止用户放大。
5.文档声明的作用?严格模式和混杂模式指的是什么?<!DOCTYPE HTML>的作用。
-
文档声明的作用?
文档声明的作用是让浏览器知道这是一个什么样的文档类型,从而能够切换到合适的显示模式来正确显示文档内容。
-
严格模式和混杂模式指的是什么?
- 严格模式:
浏览器会严格按照HTML标准和CSS标准解析和渲染。 - 混杂模式:
浏览器模拟Navigator4和IE5的非标准行为来解析,渲染页面为了兼容在W3C标准出现之前存在的不标准页面。
- 严格模式:
`<!DOCTYPE HTML>的作用
让浏览器进入标准模式,告诉浏览器这是HTML5的标准文件。
6. 浏览器乱码的原因是什么
首先,我们先大概理解我们当我们写一个HTML时和编码有关的内容。
- 写HTML文档时,首先文档声明,接着
<meta>
标签一般就要声明用的是什么字符集编码 - 保存时可以选择编辑的字符集编码。
- 浏览器解析时也会用到字符集编码。
那么出现问题的可能就有如下几种情况
- 保存使用的字符集编码和
<meta>
标签的字符集编码有冲突。 - 浏览器解码出现问题。浏览器解码优先级如下:
2.1 如果用户指定了编码,则按用户指定的编码进行解码。
2.2 先对文件进行预解析,如果文件存在BOM(BYTE ORDER MARK),则按BOM确定的编码解码。
2.3 如果HTTP响应头中存在编码信息,则按响应头中的编码进行解码。
2.4 先按浏览器的编码选择算法选择一个编码进行预解析,如果解析处<meta>标签存在字符集设置,则按<meta>标签的字符集进行解码。
2.5 按浏览器的默认编码。
这就让我突然想起为什么编写HTML文件要把<meta>尽可能早的地方,因为浏览器缓存的字节流就可以让它来确定用什么来解码
7. 常见的浏览器有那些,用什么内核?
- Trident(MSHTML)
微软开发,只能用于Windows平台。
曾经几乎与W3C脱节,尽管已经做了变动,但是仍然落后与 Gecko,WebCore,KHTMLI及Presto。
(MAXTHON/软媒的闪游浏览器/腾讯的TT/GreenBrowser)
- Gecko
代码完全公开,跨多平台
(火狐/网景6-9/等)
-
Presto
渲染速度优化达到了极致,浏览速度最快,执行JS速度很快,但是兼容性不好。(Opera)
WebKit
开放源代码。
(Safari/chrome)
8. 常见标签有那些?
<head></head>//用于文档的头部,描述文档的属性和信息,通常不可见。
<title></title> //网页标题
<meta></meta>//定义与文章相关的名称和值
<style></style>//写样式
<body></body>//内容标签,构成网页的“身体”。
<hx></hx>//文章标题
<p></p>//段落
<strong><strong>//强调
<em></em>//强调
<div></div>//盒子标签,常用来布局
<ul><li></li></ul>//无序列表
<ol><li></li><ol>//有序列表
<img/>//插入图片
<form></form>//表单,与用户交互时常用到。
<code></code>//插入代码用的
<br/>//换行,<hr/>分隔线
<table><table>//表格
暂时先写这么多吧!