最近前端的群都蛮热闹的,但我发现多数讨论的是javascript和css相关的问题,仿佛大家在努力创建各种交互、样式的时候,忘却了这一切的基础 – HTML。
其实我很喜欢HTML,觉得这个语言远比XML来得有趣,其灵活、轻便远非极端规范的XML可以比拟。同时又因为HTML的作用范围极小,规定的标签有限等说不上优点还是缺点的特色,使得HTML有着自己的确定性。
本系列的前面很大一部分会以非常短小的篇幅,介绍HTML5中的一些基本概念,并且:
- 只关心HTML这个语言,其他的javascript或者css完全不会涉及。
- 只关注HTML,对XHTML会简要带过,但不会详细说明,这源于XHTML有着比HTML更严格的规范,对浏览器的解析而言,可以认为是HTML的一个子集。
- 主要参考了whatwg的官方文档,并对现有主流浏览器的兼容性进行了评估。
- 介绍的全是基本的概念,不会涉及文档解析、DOM树构建、脚本执行之类的实现细节。
在这之后,可能会提取部分与浏览器的运行相关的技术细节,如脚本的解析、执行等话题来进行更深入的探讨。
如果你觉得HTML不爽,因为开始标签和结束标签可以随便省略太不规范,那么这个系列会告诉你,HTML的标签省略是有非常严格的规定的……
如果你觉得HTML简单,大不了照着XML来写,那么这个系列会告诉你,HTML里充满着陷阱,即便不考虑各浏览器的实现,你也不见得能安全走过这片雷区……
在开始这个系列以前,有几个非常重要的概念需要介绍。HTML中有着很多很多的概念,具体可以参见Terminology一章,但有一部分并不会在参考手册中被广泛引用,只有其中的一小块有着了解的意义:
浏览上下文 – browsing context
就是我们通常见到的页面,确切地主,浏览上下文是一个环境,在这个环境中,HTML会被解析、构建,CSS样式会被计算、应用,javascript脚本会被加载、执行,最终展现出终端用户可以看到的内容。
通常来说,我们最常接触的上下文有这么几种:
- 一个浏览器窗口,比如一个IE6窗口。
- 多标签浏览器里的一个标签,Firefox、Chrome等浏览器都是这么做的。
- 一个
<iframe>
元素也是一个独立的浏览上下文。
- 在frameset中,一个
<frame>
元素也会形成一个独立的浏览上下文。
换行 – new line
和计算机基础课程所学的一样,HTML定义了3种类型的换行符:
- 字符U+000D,即\r字符。
- 字符U+000A,即\n字符。
- 字符U+000D后跟着U+000A,即\r\n字符串。
不同的系统有其默认的换行输出,HTML的规定保证浏览器能正确解析现在主流的3种换行方式。
空格 – space
空格在HTML中有着非常重要的作用,如一个元素的各属性之间可以通过空格分隔。正常情况下,开发人员会按一下空格键来输入一个空格,当属性很多的时候,可能使用回车来将属性更好地排列起来。但是大概很少有人会去思考,为什么回车的效果和空格是一样的,HTML还能解析哪一些字符作为空格呢?
- 字符U+0020,就是普通的空格。
- 字符U+0009,就是\t水平制表符。
- 字符U+000A,就是\n换行符。
- 字符U+000D,就是\r回车符。
- 字符U+000C,这个是分页符,很少见到。
关于空格的问题,其中jQuery也犯过这个问题,甚至至今都存在这个问题。在jQuery 1.5.1的第1738行定义了一个正则表达式/[\n\t\r]/g
,用于通过空格来分隔元素的class属性。在1.4.4版本中,这个正则是/[\n\t]/g
很显然漏掉了\r,这个BUG项就说明了这个问题。当然很遗憾,1.5.1版本依旧没有照顾到标准中的所有空格字符,即没有对U+000C分页符的处理。
分享到:
相关推荐
5. HTML5 W3C Specifications(Editor’s Draft)是最新的W3C起草的HTML5草案,对于希望全面了解HTML5标准的开发者来说,这是一个权威的学习资源。 6. Yes, You Can Use HTML5 Today! 是SitePoint上的一篇精彩文章...
HTML5是现代Web开发的核心标准之一,它引入了许多新的特性和功能,极大地提升了网页的交互性和用户体验。在“HTML5 – 创建一个Web网页便利贴”这个主题中,我们将深入探讨如何利用HTML5的`contenteditable`属性来...
HTML5是Web开发领域的一次重大革新,它不仅极大地扩展了HTML语言的功能,还提升了Web应用的性能和用户体验。...为了跟上这个趋势,开发者需要不断学习和掌握HTML5的新特性,以提供更先进、更具吸引力的网页体验。
JS简介一、JS简介1.1JS是什么?1.2什么是脚本语言1.3...学习web开发一定要牢记三大标准:W3C 浏览器的多元化、世界的多元化 1.1JS是什么? Web开发:对网页起到动态实现的一个脚本语言 HTML:担任网页的骨骼结构作用
HTML5是Web开发领域的一个重要里程碑,它在2014年正式成为W3C推荐标准,极大地丰富了网页内容的展示方式和交互体验。HTML5不仅改进了原有的HTML4语法,还引入了许多新的元素、属性和API,使得前端开发者能够更高效、...
2. HTML5:HTML5是HTML(超文本标记语言)的最新主要修订版,是一种用于创建网页的标准标记语言。它支持跨平台的开发,使得开发者能创建适合多种设备和浏览器的网页应用。 描述:“毕业翻译文献资料HTML5相关,英文...
在“在3天内学习HTML 5 – 第3天 – 第1部分”这一主题中,我们聚焦于一个重要的特性:服务器发送事件(Server-Sent Events, SSE)。这是一种允许服务器向浏览器推送实时更新的技术,而无需客户端反复发送请求,极大...
#### 一、HTML5与CSS3简介 本书《HTML5 & CSS3 for the Real World》由Alexis Goldstein、Louis Lazaris和Estelle Weyl共同撰写,是一本面向实践的指南书籍,旨在帮助读者深入理解并掌握HTML5和CSS3的实际应用技巧...
他是一种超文本标记语言,英文名为:Hyper(超级) Text(文本) Markup(标记) Language(语言),缩写为HTML,标准通用标记语言下的一个应用。*HTML不是一种编程语言,而是一种超文本标记语言 (markup language...
### Windows 8 Metro Revealed: HTML5 和 JavaScript 在探讨如何使用HTML5和JavaScript开发Windows 8 Metro...通过深入学习本书的内容,开发者将能够充分利用HTML5和JavaScript的优势,创造出既美观又实用的应用程序。
1. **HTML5基础结构**:模板基于HTML5标准,提供了语义化的页面元素,如、、、等,有助于提高页面的可读性和搜索引擎优化。 2. **CSS3技术**:利用CSS3的特性,如选择器、动画、过渡效果、阴影、渐变等,实现了丰富...
通过深入学习和实践这些知识点,你将成为一名精通CSS与HTML设计模式的专业前端开发者,能够创造出符合现代标准、功能强大且用户体验优秀的网页。同时,书中源代码的实践和分析将帮助你更好地理解和应用这些理论知识...
HTML,全称Hyper Text Markup Language,是用于创建网页的标准标记语言。HTML的出现极大地推动了互联网的发展,使得人们能够创建包含文本、图像、链接等多种元素的动态网页。它通过一系列的标记来描述文档的结构和...
- XHTML通过遵循WAI-ARIA(Web Accessibility Initiative – Accessible Rich Internet Applications)标准,增强了残障人士访问网页的能力。 10. **跨平台和设备兼容性** - 由于XHTML基于XML,其结构化的特性...
2. **创建文件目录**:按照标准的网站结构创建必要的文件夹如`css`、`images`等,并将HTML文件保存为`index.html`。 3. **设置网站容器**:在HTML文件中创建一个宽度为760px的容器,并在CSS文件中定义其样式。 - ...
### J2EE框架技术——Struts&JSF教学大纲解析 #### 一、课程目标与对象 ...综上所述,本教学大纲全面覆盖了Struts和JSF框架的学习目标、课程内容、实施方式与评估标准,旨在培养具备扎实J2EE框架技术的高级软件人才。