1.HTML,XML和XHTML之间的区别
- html(Hypertext Marked Language 超文本标记语言)是一种用来制作超文本文档的简单标记语言,语法较为松散,不严格的web语言。
- xml(EXtensible Markup Language 可扩展标记语言)被设计用来传输和储存数据,这点相较于html就不同,html是设计用来展现数据的,他们的设计目的就不同。
- xhtml(EXtensible HyperText Markup Language 可扩展超文本标签语言)是更严格更纯净的 HTML 代码,是作为一种 XML 应用被重新定义的 HTML。
2.html语义化
html语义化就是选择合适的标签,使用合理的代码结构来书写的你的html文档,这样不管是对于开发者还是浏览器的爬虫都能做到更好的阅读。做到html语义化至少有一下好处:
- 在没有CSS样式的时候能够清晰的看出网页的结构,增强可读性
- 有利于SEO,有利于搜索引擎爬虫更好的理解我们的网页,从而获取更多的有效信息,提升网页的权重
- 便于团队开发和维护,语义化的HTML可以让开发者更容易的看明白,从而提高团队的效率和协调能力
- 支持多终端设备的浏览器渲染。PDA、手机等设备可能无法像普通电脑的浏览器一样来渲染网页(通常是因为这些设备对CSS的支持较弱),使用语义化可以确保这些设备以一种有意义的方式来渲染网页。
至于怎么做到语义化,这一点我们在初学html标签的时候就会被告知某一标签是干什么什么用的,比如h1~h6就是标题,那么在我们书写html文档的时候当需要写标题的时候就需要用h1~h6标签,虽说无意义的div标签也可以做到和h1~h6标签一样的效果,但是这样就不符合语义化的标准了。
3.内容与样式分离的原则
内容与样式、行为分离原则主要有一下要求:
- 写 HTML 的时候先不管样式, 重点放在HTML的结构和语义化上,让 HTML 能体现页面结构或者内容,之后再去写样式。
- 写 JS 的时候,尽量不要用 JS 去直接操作样式,而是通过给元素添加删除class来控制样式变化。
- HTML 内不允许出现属性样式,尽量不要出现行内样式。
这样做的好处是:
- 提高代码的重用性,减少冗余代码,提高开发速度
- 是代码结构一目了然,不至于你中有我,我中有你,这样不利于以后的维护,其实也是对html语义化的体现
4.常见的meta标签
<meta charset="utf-8"> 设置页面使用的字符集
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 这个标签的具体含义是如果是ie内核的浏览器就用ie的最新标准去渲染页面,是chrome内核的浏览器就用chrome去渲染页面
<meta name="keywords" content="meta 前端 基础"> 设置页面的关键词
<meta name="discription" content="这个页面主要介绍了一些前端基础知识"> 设置页面的描述
<meta name="author" content="leocz"> 表明页面的作者
<meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=1,maximum-scale=1"> 这是移动端页面最常见的一个meta标签属性,具体参数详情如下:
- width=device-width 页面宽度等于设备宽度
- user-scalable=no 是否允许用户缩放,no代表不允许,yes表示允许
- maximum-scale=1 最大缩放比例
- minimum-scale=1 最小缩放比例
5.文档声明的作用,严格模式与混杂模式,<!doctype html>的作用
- 网页顶部的文档声明是让浏览器进入正确呈现模式的关键,浏览器自动切换到恰当的呈现模式,以便正确显示由文档声明所指定的文档种类。
- 严格模式,又称标准模式,是指浏览器按照 W3C 标准解析代码;而混杂模式则是一种向后兼容的解析方法,浏览器选择自己的渲染模式。
- <!doctype html>就是一种文档声明,告诉浏览器该文档是html5文档,用html5的标准来解析和渲染当前页面
6.浏览器乱码
浏览器在解析页面的时候会根据页面中的<meta charset="xxx> 来选择解码模式,而我们在写好html文档的保存的时候,也会有保存的编码格式选项,乱摸的产生就是浏览器选择的解码方式与我们保存html文档是的编码方式不同,这才导致了乱码。解决方式就是在文档中正确的表明保存时所用的编码方式,以便浏览器能够选择正确的解码方式。
7.常见的浏览器及其内核
| 浏览器名称 | 内核
|---
| chrome,Safari | Webkit
| firfox | Gecko
|ie | Trident
|opera | Blink
其他一些国内的浏览器比如360 搜狗 猎豹等双核浏览器一般都是chrome和ie双核
8.常见标签及其使用场景
| 标签名 | 使用场景
|---
| h1~h6 | 定义标题
| p |定义段落
| form | 定义表单
| input | 定义输入控件
| textarea | 定义多行文本输入控件
| button | 定义按钮
| select | 定义选择列表
| option | 定义选择列表中的选项
| ul | 定义无序列表
| ol | 定义有序列表
| li | 定义列表中的项
| dl | 定义定义列表
| dt | 定义定义列表中的项目标题
| dd | 定义定义列表中项目的描述
| img | 定义图片
| a | 定义链接
| div | 无意义,在前面定义都不适用的时使用,块级元素
| span | 无意义,行内元素
| br | 换行
| hr | 水平线