HTML、XML、XHTML 有什么区别?
HTML:HyperText Markup Language, 超文本标记语言
是用来的描述和定义网页内容的, 有自己的预定义标签
XML: Extensible Markup Language, 可扩展的标记语言
用于存储数据和结构参考, 没有自己的预定义标签
XHTML: Extensible Hypertext Markup Language, 可扩展超文本标记语言
基于xml, 作用于html类似, 相比于html有更严格的语法要求
比如: 元素必须小写; 标签必须闭合等
怎样理解HTML语义化?
选择合适的标签, 使用合理的代码结构, 便于开发者阅读, 同时让浏览器的爬虫和机器能够很好的阅读.
怎样理解内容与样式分离的原则?
- 写html的时候,尽量先不去关心样式, 重点放在结构和语义上
- 写js的时候, 尽量不要用js去操作样式, 而是通过给元素添加删除class来控制样式变化
- html内不允许出现属性样式, 尽量不要出现行内样式
有哪些常见的meta标签?
<meta charset="utf-8">
告诉浏览器用utf-8的编码去加载渲染页面
meta标签共有两个属性:http-equiv和name;不同的属性又有不同的参数值,这些不同的参数值就实现了不同的网页功能。
- name属性
name属性主要用于描述网页,与之对应的属性值为content,content中的内容主要是便于搜索引擎机器人查找信息和分类信息用的.
<meta name="keywords" content="前端 饥人谷">
<meta name="description" content="最有爱的前端学习社区">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> //主要是设计到移动端网页的
- http-equiv属性
相当于http协议中文件头的作用,它可以向浏览器传回一些有用的信息,以帮助正确和精确地显示网页内容,与之对应的属性值为content,content中的内容其实就是各个参数的变量值。
meat标签的http-equiv属性语法格式是:<meta http-equiv=”参数” content=”参数变量值”>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
//指定IE和Chrome使用最新版本渲染当前页面
可以参考http://zq210wl.github.io/2015/01/05/html-meta-tag/, meta中常见的属性及意义
文档声明的作用?严格模式和混杂模式指什么?<!doctype html> 的作用?
- <!DOCTYPE>声明叫做文件类型定义(DTD),声明的作用为了告诉浏览器该文件的类型。让浏览器解析器知道应该用哪个规范来解析文档。<!DOCTYPE>声明必须在 HTML 文档的第一行,这并不是一个 HTML 标签。DTD(文档类型定义)是一组机器可读的规则,他们定义 XML 或 HTML 的特定版本中允许有什么,不允许有什么。在解析网页时,浏览器将使用这些规则检查页面的有效性并且采取相应的措施。浏览器通过分析页面的 DOCTYPE 声明来了解要使用哪个 DTD ,由此知道要使用 HTML 的哪个版本
-
严格模式和混杂模式的区别:
首先,严格模式(又称标准模式,Standards模式)和混杂模式(Quirk模式)都是指浏览器的呈现模式,要与Doctype的两种风格区别开来(严格( strict )和过渡( transitional ),过渡 DOCTYPE 的目的是帮助开发人员从老版本迁移到新版本)。
严格模式:又称标准模式,是指浏览器按照 W3C 标准解析代码,呈现页面
混杂模式:又称怪异模式或兼容模式,是指浏览器用自己的方式解析代码,即使用一种比较宽松的向后兼容的方式来显示页面
而浏览器究竟是使用严格模式还是混杂模式呈现页面与网页中的 DTD (文件类型定义)直接相关。
对于 HTML 4.01 文档,
包含严格 DTD 的 DOCTYPE 常常导致页面以标准模式呈现。
包含过度 DTD 和 URI 的 DOCTYPE 也导致页面以标准模式呈现。
但是有过度 DTD 而没有 URI 会导致页面以混杂模式呈现。
DOCTYPE 不存在或形式不正确会导致 HTML 和 XHTML 文档以混杂模式呈现。
对于HTML5文档,
HTML5 没有 DTD ,因此也就没有严格模式与混杂模式的区别,HTML5 有相对宽松的语法,实现时,已经尽可能大的实现了向后兼容。( HTML5 没有严格和混杂之分) - <!doctype html>是h5的文档声明
浏览器乱码的原因是什么?如何解决?
简单来说就是保存html的编码格式和浏览器解析html时的编码不一致.
可以在<meta charset="">和保存html的编码格式一致即可.
可以参考若愚的聊一聊编码和乱码
常见的浏览器有哪些,什么内核?
- 什么是浏览器内核?
浏览器内核包含两部分: 渲染引擎和JS 引擎.
- 渲染引擎负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入 CSS 等),以及计算网页的显示方式,然后会输出至显示器或打印机等.
浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同. - JS 引擎则是解析 Javascript 语言,执行 javascript 语言来实现网页的动态效果.
- 最开始渲染引擎和 JS 引擎并没有区分的很明确,后来 JS 引擎越来越独立,内核就倾向于只指渲染引擎
- 常见的浏览器内核
Trident: IE内核, 是微软在 Mosaic(”马赛克”,这是人类历史上第一个浏览器,从此网页可以在图形界面的窗口浏览) 代码的基础之上修改而来的,并沿用到 IE11,也被普遍称作 “IE内核”.
国内很多的双核浏览器的其中一核便是 Trident,美其名曰 “兼容模式”.Gecko: Firefox内核,Netscape6 开始采用的内核,后来的 Mozilla FireFox(火狐浏览器) 也采用了该内核,Gecko 的特点是代码完全公开,因此,其可开发程度很高,全世界的程序员都可以为其编写代码,增加功能, 同时它也是一个跨平台的内核.
Webkit: Safari内核, Safari 是苹果公司开发的浏览器,使用了KDE(Linux桌面系统)的 KHTML 作为浏览器的内核,Safari 所用浏览器内核的名称是大名鼎鼎的 WebKit。 Safari 在 2003 年 1 月 7 日首度发行测试版,并成为 Mac OS X v10.3 与之后版本的默认浏览器.
2008 年谷歌公司发布 chrome 浏览器,采用的 chromium 内核便 fork 了 Webkit.Chromium/Blink: Chrome内核, 2008 年,谷歌公司发布了 chrome 浏览器,浏览器使用的内核被命名为 chromium.
chromium 问世后,带动了国产浏览器行业的发展。一些基于 chromium 的单核,双核浏览器如雨后春笋般拔地而起,例如 搜狗、360、QQ浏览器等等,无一不是套着不同的外壳用着相同的内核.
2013 年 4 月 3 日,谷歌在 Chromium Blog 上发表 博客,称将与苹果的开源浏览器核心 Webkit 分道扬镳,在 Chromium 项目中研发 Blink 渲染引擎(即浏览器核心),内置于 Chrome 浏览器之中.
Blink 引擎问世后,国产各种 chrome 系的浏览器也纷纷投入 Blink 的怀抱.Presto: 挪威产浏览器 opera 的 “前任” 内核, 最新的 opera 浏览器早已将之抛弃从而投入到了谷歌大本营