`

HTML5标准学习 – 简介

 
阅读更多

 

最近前端的群都蛮热闹的,但我发现多数讨论的是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分页符的处理。

分享到:
评论

相关推荐

    值得收藏的HTML5资源(学习html5的朋友可以收藏下)

    5. HTML5 W3C Specifications(Editor’s Draft)是最新的W3C起草的HTML5草案,对于希望全面了解HTML5标准的开发者来说,这是一个权威的学习资源。 6. Yes, You Can Use HTML5 Today! 是SitePoint上的一篇精彩文章...

    HTML5 – 创建一个Web网页便利贴

    HTML5是现代Web开发的核心标准之一,它引入了许多新的特性和功能,极大地提升了网页的交互性和用户体验。在“HTML5 – 创建一个Web网页便利贴”这个主题中,我们将深入探讨如何利用HTML5的`contenteditable`属性来...

    HTML5 – Web开发步入新阶段

    HTML5是Web开发领域的一次重大革新,它不仅极大地扩展了HTML语言的功能,还提升了Web应用的性能和用户体验。...为了跟上这个趋势,开发者需要不断学习和掌握HTML5的新特性,以提供更先进、更具吸引力的网页体验。

    JS(一)–简介

    JS简介一、JS简介1.1JS是什么?1.2什么是脚本语言1.3...学习web开发一定要牢记三大标准:W3C 浏览器的多元化、世界的多元化 1.1JS是什么? Web开发:对网页起到动态实现的一个脚本语言 HTML:担任网页的骨骼结构作用

    HTML5 学习应用

    HTML5是Web开发领域的一个重要里程碑,它在2014年正式成为W3C推荐标准,极大地丰富了网页内容的展示方式和交互体验。HTML5不仅改进了原有的HTML4语法,还引入了许多新的元素、属性和API,使得前端开发者能够更高效、...

    计算机毕业翻译文献(HTML5相关)

    2. HTML5:HTML5是HTML(超文本标记语言)的最新主要修订版,是一种用于创建网页的标准标记语言。它支持跨平台的开发,使得开发者能创建适合多种设备和浏览器的网页应用。 描述:“毕业翻译文献资料HTML5相关,英文...

    在3天内学习HTML 5 –第3天–第1部分

    在“在3天内学习HTML 5 – 第3天 – 第1部分”这一主题中,我们聚焦于一个重要的特性:服务器发送事件(Server-Sent Events, SSE)。这是一种允许服务器向浏览器推送实时更新的技术,而无需客户端反复发送请求,极大...

    HTML5 and CSS3 for the Real World

    #### 一、HTML5与CSS3简介 本书《HTML5 & CSS3 for the Real World》由Alexis Goldstein、Louis Lazaris和Estelle Weyl共同撰写,是一本面向实践的指南书籍,旨在帮助读者深入理解并掌握HTML5和CSS3的实际应用技巧...

    html最基本知识–写给想要学习html的同学们

    他是一种超文本标记语言,英文名为:Hyper(超级) Text(文本) Markup(标记) Language(语言),缩写为HTML,标准通用标记语言下的一个应用。*HTML不是一种编程语言,而是一种超文本标记语言 (markup language...

    windows 8 metro revealed: html5 and javascript

    ### Windows 8 Metro Revealed: HTML5 和 JavaScript 在探讨如何使用HTML5和JavaScript开发Windows 8 Metro...通过深入学习本书的内容,开发者将能够充分利用HTML5和JavaScript的优势,创造出既美观又实用的应用程序。

    仿阿里云后台管理界面模板html源码

    1. **HTML5基础结构**:模板基于HTML5标准,提供了语义化的页面元素,如、、、等,有助于提高页面的可读性和搜索引擎优化。 2. **CSS3技术**:利用CSS3的特性,如选择器、动画、过渡效果、阴影、渐变等,实现了丰富...

    精通CSS与HTML设计模式

    通过深入学习和实践这些知识点,你将成为一名精通CSS与HTML设计模式的专业前端开发者,能够创造出符合现代标准、功能强大且用户体验优秀的网页。同时,书中源代码的实践和分析将帮助你更好地理解和应用这些理论知识...

    计算机【HTML语言】课件

    HTML,全称Hyper Text Markup Language,是用于创建网页的标准标记语言。HTML的出现极大地推动了互联网的发展,使得人们能够创建包含文本、图像、链接等多种元素的动态网页。它通过一系列的标记来描述文档的结构和...

    XHTML标准参考手册

    - XHTML通过遵循WAI-ARIA(Web Accessibility Initiative – Accessible Rich Internet Applications)标准,增强了残障人士访问网页的能力。 10. **跨平台和设备兼容性** - 由于XHTML基于XML,其结构化的特性...

    css教程–十步学会用css建站

    2. **创建文件目录**:按照标准的网站结构创建必要的文件夹如`css`、`images`等,并将HTML文件保存为`index.html`。 3. **设置网站容器**:在HTML文件中创建一个宽度为760px的容器,并在CSS文件中定义其样式。 - ...

    《J2EE框架技术+–+Struts&JSF》教学大纲

    ### J2EE框架技术——Struts&JSF教学大纲解析 #### 一、课程目标与对象 ...综上所述,本教学大纲全面覆盖了Struts和JSF框架的学习目标、课程内容、实施方式与评估标准,旨在培养具备扎实J2EE框架技术的高级软件人才。

Global site tag (gtag.js) - Google Analytics