HTML面试知识点精讲:标准模式、HTML5与DTD、浏览器内核解析
需积分: 0 149 浏览量
更新于2024-06-30
收藏 2.21MB PDF 举报
"阿里前端第一期1"的课程内容主要涵盖了HTML相关的面试知识点,包括HTML的基础概念、语法特性、元素类型、浏览器的工作原理以及前端性能优化等方面。以下是这些知识点的详细说明:
1. **DOCTYPE的作用**:DOCTYPE声明是告诉浏览器文档使用的HTML版本,它有助于浏览器以正确的标准模式或兼容模式渲染页面。
2. **标准模式与兼容模式的区别**:标准模式遵循W3C标准,元素布局和渲染严格;兼容模式(也称quirks mode)是为兼容旧版浏览器,可能呈现非标准行为。
3. **HTML5只需<!DOCTYPEHTML>**:HTML5不再需要引用DTD(文档类型定义),因为它基于XML的简单语法,并且默认使用标准模式。
4. **SGML、HTML、XML和XHTML的区别**:
- SGML是标准通用标记语言,是HTML和XML的父辈。
- HTML是用于创建网页的标记语言,基于SGML。
- XML是可扩展标记语言,强调数据结构和语义,而非显示。
- XHTML是HTML与XML的结合,具有更严格的语法。
5. **行内元素与块级元素**:行内元素如`<span>`在一行内显示,不独占一行;块级元素如`<div>`会占据整行,可以包含其他元素。
6. **DTD介绍**:DTD(文档类型定义)是定义XML或HTML文档结构的规则集,用于验证文档是否符合规范。
7. **HTML5元素分类**:HTML5元素分为行内元素、块级元素、行内块级元素等,还有一些新的语义化元素,如<header>、<nav>、<section>等。
8. **空元素定义**:如`<br>`、`<img>`等,它们没有闭合标签。
9. **link标签定义**:用于引入外部CSS样式表,还可以用于定义关系,如`rel="stylesheet"`表示引入样式表,`rel="alternate"`表示替代内容。
10. **link和@import的区别**:link是HTML标签,直接在HTML文档中引入样式;@import是CSS语法,在CSS内部引入样式,@import需放在所有其他样式规则之后,且在某些情况下支持性不同。
11. **浏览器理解**:浏览器是用户与互联网内容交互的软件,负责解析HTML、CSS和JavaScript,渲染网页并执行交互。
12. **浏览器内核**:内核是处理渲染和解析任务的核心组件,常见的有WebKit(Safari、Chrome)、Gecko(Firefox)、Trident(IE/Edge)和Blink(Chrome、Opera)。
13. **浏览器渲染原理**:浏览器首先解析HTML构建DOM树,接着解析CSS构建CSSOM树,合并成渲染树,然后布局和绘制页面。
14. **JS文件处理**:浏览器在解析到JS文件时会暂停HTML解析,等待脚本执行完毕再继续。
15. **async和defer**:两者都是延迟加载脚本,async不保证执行顺序,defer保证按脚本在文档中的顺序执行。
16. **预解析**:浏览器会提前读取部分HTML,解析链接的资源,以提高加载速度。
17. **CSS阻塞解析**:未加载完成的外部CSS会阻塞DOM解析,直到CSSOM树构建完成。
18. **渲染不良现象**:如闪烁、重排、重绘等,会影响用户体验。
19. **关键渲染路径优化**:通过减少HTTP请求、压缩资源、使用异步加载等方式,确保页面尽快呈现主要内容。
20. **重绘与回流**:重绘是元素外观改变但不影响布局,回流是元素尺寸或位置改变,导致周围元素重新布局。
21. **减少回流**:避免修改影响布局的属性,使用CSS3动画和变换,或者使用CSS伪类来减少DOM操作。
22. **DOM操作慢的原因**:DOM操作涉及内存和CPU资源,频繁操作会导致浏览器性能下降。
23. **DOMContentLoaded和Load事件**:DOMContentLoaded在DOM树加载完成后触发,Load则在所有资源加载完毕后触发。
24. **HTML5新特性**:包括离线存储、拖放、canvas、svg、geolocation、web workers等,移除了如frame、font等过时元素。
25. **HTML5兼容问题**:可以通过Modernizr库检测浏览器支持,或者使用polyfill提供老浏览器的兼容性。
26. **HTML语义化**:使用恰当的标签描述内容,提高可读性和辅助技术的兼容性。
27. **b与strong、i与em的区别**:b和i只是视觉强调,strong和em强调语义,如strong表示重要性,em表示强调。
28. **前端SEO**:包括关键词优化、元标签使用、URL结构、页面速度优化等,以提高搜索引擎排名。
29. **HTML5离线储存**:通过manifest文件,将部分资源缓存本地,离线时仍可访问。
30. **离线储存管理与加载**:浏览器根据manifest文件缓存指定资源,更新时检查版本,更新缓存。
31. **浏览器存储技术**:包括Cookie、localStorage、sessionStorage,分别用于不同场景的数据存储。
32. **cookies、sessionStorage和localStorage的区别**:
- Cookie:大小限制4KB,每次请求都会发送,适用于小量数据,跨域共享。
- sessionStorage:关闭页面后清除,同源策略,用于临时存储页面数据。
- localStorage:长期存储,关闭浏览器后依然保留,同源策略,适合大量数据存储。
33. **iframe缺点**:增加页面加载时间,可能导致SEO问题,可能引发安全问题。
34. **Label作用**:Label用于绑定输入控件,点击label会触发关联控件的焦点或行为。
35. **HTML5 form的自动完成功能**:允许浏览器记住表单数据,提供填写建议,提高用户体验。
以上知识点是前端开发者必备的基础,理解和掌握这些内容对于编写高效、可维护的网页至关重要。
2022-08-03 上传
2022-08-03 上传
2023-06-06 上传
2023-10-24 上传
2023-04-28 上传
2023-05-25 上传
2023-10-31 上传
2023-05-05 上传
2023-05-31 上传
SLHJ-Translator
- 粉丝: 34
- 资源: 297
最新资源
- 基于Python和Opencv的车牌识别系统实现
- 我的代码小部件库:统计、MySQL操作与树结构功能
- React初学者入门指南:快速构建并部署你的第一个应用
- Oddish:夜潜CSGO皮肤,智能爬虫技术解析
- 利用REST HaProxy实现haproxy.cfg配置的HTTP接口化
- LeetCode用例构造实践:CMake和GoogleTest的应用
- 快速搭建vulhub靶场:简化docker-compose与vulhub-master下载
- 天秤座术语表:glossariolibras项目安装与使用指南
- 从Vercel到Firebase的全栈Amazon克隆项目指南
- ANU PK大楼Studio 1的3D声效和Ambisonic技术体验
- C#实现的鼠标事件功能演示
- 掌握DP-10:LeetCode超级掉蛋与爆破气球
- C与SDL开发的游戏如何编译至WebAssembly平台
- CastorDOC开源应用程序:文档管理功能与Alfresco集成
- LeetCode用例构造与计算机科学基础:数据结构与设计模式
- 通过travis-nightly-builder实现自动化API与Rake任务构建