`
xjk2131650
  • 浏览: 57165 次
  • 性别: Icon_minigender_1
  • 来自: 河北
社区版块
存档分类
最新评论

使用 HTML5 Boilerplate 开始您的 web 开发

阅读更多

 

web 开发团队的一个常见实践是创建一组标准文件,团队成员基于它们开始 web 开发流程,包括一个公共文件结构、基本命名惯例和标准库。这样做能够更容易启动并运行一个项目。它还能将开发人员引向内部编码标准并实施标准文件组织。HTML5 Boilerplate 就是这种处于 web 开发最前沿的完美理念的实现。

结合了使用 HTML5 需要的几个增强和许多其他最佳实践,只需最少的前期投资,HTML5 Boilerplate 就能为您的项目提供一个坚如磐石的基础。本文简述了使用 HTML5 Boilerplate 来开始一个项目的方法,展示了一些能够对其进行调优,使其适应一个已有框架和编码风格的方法。

HTML5 组件

HTML5 Boilerplate 的核心是用于帮助开发 HTML5 站点和应用程序的组件,包括:

  • Modernizr,一个小型实用程序库,支持在 Windows® Internet Explorer® 中设置新的 HTML5 元素样式,并协助在所有浏览器中进行 HTML5/CSS3 特性检测。如果您正在使用 HTML5 进行开发且需要支持 Internet Explorer 版本 9 之前的浏览器版本 ,那么这个库(或者我稍后将解释的一个替代选项)将是您的项目必不可少的一个组件。
  • 构建于 HTML5 Doctor Reset 之上的一个 CSS 起始文件,包含几个智能默认值和增强。
  • 内置 HTML5 语法,以及一些新的语义元素,用于构成您文档的骨架。

除了这些核心的 HTML5 相关特性,该项目还实现了几个优秀的最佳实践。下面列出了部分最佳实践:

  • 在整个项目过程中非常关注前端性能,采用适当的结构(CSS 位于顶部,JavaScript 代码位于底部),一个 Google Analytics 异步实现,以及项目的 Apache ANT 构建脚本中提供的几个基于性能的增强。
  • 几个跨浏览器助手,包括 HTML 元素上的特定于 Internet Explorer 版本的类和一个针对 Internet Explorer 版本 6 的自动 PNG 补丁。
  • 样例 .htaccess 和 web.config 文件,帮助您设置您的服务器来利用 HTML5 特性和 web 字体并通过一个智能缓存策略加速您的站点。
  • 远远超出典型重置范围的 CSS 增强。这个样式表使用精心挑选和偶尔聪明的默认值重构元素。它还添加了几个方便的助手类。常见的 .clearfix 类是您需要熟悉的类,.hidden 和 .visuallyhidden 等类也包含在内且非常有用。骨架打印样式(Skeleton print styles)、分页媒体样式和用于快速响应 web 设计的媒体查询也被包含进来。

尽管看起来已经不少了,但上面的列表只是这个项目附带的最佳实践的一个样本。即使对于持续关注这些事情的人来说,这也是一个令人印象深刻的集合。事实上,这个集合是如此令人印象深刻,以至于该项目承认这样一个事实:这个集合是 “删除键友好的”。这句话的意思是:它是一个健壮的集合,并不是每个人都需要在每个项目中默认包含每个特性。

所有这一切都指向一个使用 HTML5 Boilerplate 的核心教训:由于 HTML5 Boilerplate 意味着被用作一个基础,因此在项目启动时启用这些文件不是可选项,而且是 必须执行的操作。认识到这一点之后,我们现在可以开始逐步演示一个 HTML5 Boilerplate 项目并使用那个删除键来定制它了。

使用 Boilerplate

当您阅读下面的小节时,请记住,这个逐步演示的目的并不是规定您应该如何设置您的项目,而是演示您如何能够和应该如何解决这个问题,以便这个基础平台适应您的特定项目和开发风格。

获取代码

要获得代码,最简单的方法就是从项目网站下载(见 参考资料)。鉴于本文的目的,我假定您已经下载代码,获得了 stripped 版本。

或者,如果您喜欢使用 git,则可以克隆这个项目,然后使用下面任一方法获取一个干净的项目副本来使用:

  • 如果您能够访问一个 UNIX® shell,那么可以导航到项目的构建目录并运行其中的 createproject.sh 文件,这将在 HTML5 Boilerplate 根文件夹中生成一个干净的目录。
  • 如果您处于一台 Windows 机器上,或者在放置输出文件方面想要更多灵活性,因而不能运行 shell 脚本,那么您可以检查 stripped 的分支,然后下载一个存档文件。通常,您使用 Smart Git 或 TortoiseGit 这样的工具来执行这个操作,但也可以从命令行执行,如下所示:

    git checkout -b stripped origin/stripped
    git archive stripped --format=zip --output=/path/to/your/files.zip
    

无论您采用哪种方法,都需要移动到您新创建的副本并进行定制。

定制

通常,我进行的首次编辑取决于我计划使用高级 HTML5、CSS3 或其他新兴技术的程度。如果您正在创建一个内容站点或博客,且只想使用新的语义标记对您的站点进行 “未来证明(future-proof)”,那么可以使用 html5shiv 这个小代码段替换外部 Modernizr 脚本。html5shiv 代码的用途是使 CSS 在 Internet Explorer 的较早版本中用于新的语义元素。Modernizr 比较快,但如果您不打算利用测试 Modernizr 发布,那么可以通过选择简化选项来为您的用户节约几毫秒时间。

我经常自动删除的一个部分是位于底部的配置部分。如果不用它,最好立即删除。根据您的当前项目的需求,您也可以删除用于 Internet Explorer 6 的 PNGFix 解决方案。

在 HTML 文档外部,您可以立即删除项目根目录中的一些文件和文件夹,原因是您不需要它们(test 文件夹、web.config、crossdomain.xml 和 nginx.conf),或者拥有自己的版本(robots.txt 和 .htaccess)。

一个额外的注意事项

如果您在一台运行 Windows 的机器上使用文件 protocol 开发模板并在 Internet Explorer 中测试它们,那么您肯定熟悉那些无穷无尽的安全对话框,只要您试图运行任何内容 — 即使以远程交互式方式运行 — 那些对话框就会弹出来。要消除这个现象,只需将 “Mark of the Web” 直接插入 doctype 声明之后。这个简单的代码段将把 Internet Explorer 放入 Internet 区,并抑制令人讨厌的安全对话框。

<!doctype html>
<!-- saved from url=(0014)about:internet --> 


注意,这段代码也被项目的构建脚本剥离出去,因此它不会进入生产环境。

文件夹结构

这不是一个典型定制,但它真的展示了这样一个事实:HTML5 Boilerplate 是一个基础 — 仅此而已。如果您不喜欢某个内容,尽管修改它。您才是那个推动项目前进的人。

每当我开始一个项目时,我都首先调整文件夹结构。现有结构没有任何错误:我只是喜欢将所有静态资产(脚本、flash 元素、图像、样式表)放置到一个名为 _assets 的顶级目录中。这样做将保持一个更整洁的根目录,将那些经常被引用的元素推到文件窗口中的目录树的顶端。除此之外,我还在 CSS 文件夹中添加两个子目录,分别用于 Web 字体和 CSS 图像。由于以前处理过许多将图像用作内容的站点,我喜欢将内容图像和界面图像分离开来,这就需要新建两个文件夹。

我还要简化 js 文件夹的层级结构,方法是删除 libs、mylibs 和 profiling 目录,将它们的内容移动到一个扁平的 js 目录中。完成后的结果如 图 1 所示。


图 1. 新文件夹结构
新文件夹结构图示 

此时,我只是确保 HTML 文档中的路径匹配新现实,我自己进行了一些调整。我还对构建脚本进行了一些调整,这将在下一节中介绍,但总的来说,我准备好开始我的新项目了。

构建脚本

当您准备好打包您的站点时 — 要么作为一个静态站点交付,要么作为一个将来用于与一个 CMS 或其他平台集成的构建工具,是时候访问 /build 目录了。就目前而言,HTML5 Boilerplate 拥有一个 ANT 构建脚本,该脚本包含几个用于打包内容的有用任务。

注意:如果您想将其他构建系统集成到您的项目中并且您是一个 Rake、Apache Maven 或其他构建系统大师,那么您可以直接使用 github,分割项目,进行构建。

构建脚本的功能

使用 ANT — 一个基于 Java™ 的构建工具,这个构建脚本执行以下任务:

  • 使用 YUI 压缩程序合并和缩小 JavaScript
  • 合并和缩小 CSS
  • 使用 jpegtran 和 optipng 优化 JPG 和 PNG 文件
  • 移除仅用于开发的代码
  • 使用 htmlcompressor 配置 HTML 缩小
  • 修改文件名进行智能缓存(特别是缓存已更新的文件)

有 4 个任务您应该注意:

  • build 执行细小的 HTML 优化,缩小内联脚本和样式,连接和缩小外部 JavaScript 代码和 CSS,处理图像
  • buildkit 保留 HTML 空白以在今后的生产流程中保持可读性,缩小内联脚本和样式,连接和缩小外部 JavaScript 代码和 CSS,处理图像
  • minify 执行完整的 HTML 缩小,缩小内联脚本和样式,连接和缩小外部 JavaScript 代码和 CSS,处理图像
  • text 执行完整的 HTML 缩小,JavaScript 代码缩小,连接和 CSS 缩小,不执行图像优化

如果您正在运行默认 boilerplate,那么只要您安装了 Java 且您的路径中有 ANT,上述任务就应该能够完成。

如果您和我一样,也对您的文件架结构进行了一些调整,那么您必须对构建脚本进行一些定制。您将在一个名为 build.properties 的文件中进行大部分更改,您可能必须调整构建脚本中的一到两行。

build.properties 中的更改(如 清单 1 所示)都是基于目录的。变量被更新为将构建脚本指向 JavaScript 代码、CSS 和图像的新位置。


清单 1. 示例 build.properties 文件

				
#build properties is where you override default configuration elements.
#in my case I just need to set some new folder references.
# Custom Build options ---------------------------------
# Project structure -----------------------------
# Directory names
dir.assets   = _assets
dir.js  = ${dir.assets}/js
# Main JS script folder (Will be concatenated and minified)
dir.js.main  = ${dir.js}
dir.css  = ${dir.assets}/css
dir.images  = ${dir.build}/images
dir.cssimages  =${dir.css}/images


对于我的环境,我需要修改 build.xml 中的一行来引用我的第二个图像目录。清单 2 展示了这个简单的更改。您将在这里看到操作系统级分支,因此下面的示例使用一个 Windows 环境。还有针对 Linux® 和 Mac OS X 的分支,那里也需要进行类似的更改。


清单 2. 编辑 build.xml 

				
<target name="imagesjpg" depends="copy">
<echo message="Clean up those jpgs..."/>
[snip...]
<apply executable="tools/jpegtran.exe" osfamily="windows">
<fileset dir="./${dir.publish}/${dir.images}/" includes="*.jpg"/>
<!-- Adding in my css/images directory -->
<fileset dir="./${dir.publish}/${dir.cssimages}/" includes="*.jpg"/>
[snip...]
</target>


进行这些更改之后,您就获得了一个根据您的喜好进行调整的、功能齐全的项目,您已准备好构建优化代码了。

结束语

如您所见,进入 HTML5 Boilerplate 项目的门槛非常低,有充足的空间用于试验。您可以将这个项目作为您的试验项目,探索它带来的好处,如果其中有任何缺失或您不需要的东西,尽管进行相应修改。

分享到:
评论

相关推荐

    HTML模块化,使用HTML5 Boilerplate模板:h5bp-html5-boilerplate-v4.1.0

    总的来说,HTML5 Boilerplate v4.1.0是HTML模块化开发的一个强大工具,它集成了众多最佳实践,简化了Web开发流程,提高了网站的性能和兼容性。无论是初学者还是经验丰富的开发者,都可以从中受益,更快地构建出高...

    html5boilerplate专业的前端模板构建快速健壮适应性强的web应用或网站

    HTML5 Boilerplate(H5BP)是一个开源项目,旨在提供一个专业的前端开发模板,帮助开发者构建快速、健壮且适应性强的Web应用或网站。它集合了最佳实践和常见配置,使得开发工作更加高效和标准化。 1. HTML5语义化...

    通过使用HTML5BoilerPlate构建的社区最佳实践集合来提升您的CakePHP烘焙.zip

    HTML5BoilerPlate和CakePHP都是Web开发领域中非常重要的工具和框架,它们各自有着独特的优势,当两者结合使用时,可以显著提升Web应用程序的性能和用户体验。在本压缩包"通过使用HTML5BoilerPlate构建的社区最佳实践...

    PDF-Html5BoilerplateWebDevelopment-英文版.rar

    《PDF-Html5BoilerplateWebDevelopment》是一个深入探讨HTML5 Boilerplate在Web开发中的应用的资源,主要针对英文读者。HTML5 Boilerplate是前端开发的基石,它提供了一个优化的开发环境,帮助开发者快速创建健壮、...

    最流行的web开发前端模版HTML5 Boilerplate.zip

    HTML5 Boilerplate 帮你构建 快速, 健壮, 并且 适应力强 的web app或网站。 这个小小的源码包集合了100位开发者的经验,你可以将这些经验运用在你的项目中。 Google统计、图标 和 更多 压缩包内包含了 一个干净、...

    HTML5Boilerplate模板

    HTML模块化:使用HTML5Boilerplate模板开始一个Web项目,HTML的书写总是重中之重,一个好的HTML能从根源上规避大量潜在问题,所以WebApp应该全部应用一个标准化的高质量HTML模板,而不是将所有页面交由开发人员自由...

    Laravel开发-laravel-5-boilerplate

    "Laravel开发-laravel-5-boilerplate"标题表明我们正在讨论一个针对Laravel 5版本的开发模板或起点项目,这通常是开发者快速启动新项目的基础,包含了一系列预配置的组件和最佳实践。 在Laravel 5中,主要包含了...

    Laravel开发-laravel-boilerplate

    Laravel 的核心理念是使复杂的 web 应用程序开发变得简单,它具有清晰的代码结构、强大的路由系统、出色的数据库 ORM(Eloquent)以及易于使用的命令行工具(Artisan)。 ### Laravel Boilerplate 特性 1. **预...

    html5-boilerplate-master_html_building_css_源码

    HTML5 Boilerplate(H5BP)是一个开源项目,旨在提供一个专业的前端开发模板,用于构建快速、健壮且适应性强的Web应用。这个项目的核心目标是帮助开发者在开始新项目时能够快速上手,减少重复劳动,同时确保遵循最佳...

    最流行的web开发前端HTML模板

    【标题】:“最流行的web开发前端HTML模板” 在Web开发领域,HTML模板是构建网站页面结构的基础,它们为开发者提供了一种快速、高效地创建网页布局的方法。"最流行的web开发前端HTML模板"指的是那些被广泛采用,...

    html5快速开发框架

    HTML5快速开发框架是现代Web应用和网站构建的利器,旨在提高开发效率,增强应用程序的健壮性,并确保其能够适应各种设备和浏览器环境。HTML5 Boilerplate(H5BP)是一个广泛使用的开源项目,正如文件名"h5bp-...

    wechat-h5-boilerplate-master

    "wechat-h5-boilerplate-master" 是一个专为微信H5小程序开发设计的通用框架,旨在简化微信H5应用的构建过程,提供了一个基础的开发模板。开发者可以在此基础上进行定制化开发,以满足不同项目的需求。框架可能包含...

    html5-boilerplate:专业的前端模板,用于构建快速,健壮且适应性强的Web应用程序或网站

    HTML5 Boilerplate是一个专业的前端模板,用于构建快速,健壮和适应性强的Web应用程序或网站。 该项目是10多年的迭代开发和社区知识的产物。 它没有强加特定的开发理念或框架,因此您可以按照自己的方式自由地构建...

    Laravel开发-boilerplate

    通过使用这样的boilerplate,开发者可以避免从零开始创建这些基本元素,从而节省时间并专注于核心业务逻辑。 **Laravel框架的关键特性:** 1. **Artisan命令行工具**:Artisan是Laravel自带的命令行接口,提供了...

    html5-boilerplate

    有了它,您可以快速,标准化地开发网站和Web应用程序。 好的,现在就开始吧! HTML5样板 16:30h-17:30h WELL-塔伊萨和卢卡斯蜘蛛08/28咕嘟咕嘟声/咕Gr声-若昂·马科斯07/29鲍尔-罗慕洛和若昂·保罗7/31约曼...

    boilerplate:Golang Web开发项目的个人样板

    5. **中间件**:Golang Web开发常使用中间件来处理通用任务,如日志记录、权限验证、错误处理等,这些可能在模板中预定义。 6. **模板引擎**:可能集成了如Gin、Echo、Abe等框架,它们通常支持模板引擎,用于动态...

    前端开源库-web-boilerplate

    通过使用【web-boilerplate-master】这个压缩包,开发者可以快速地创建一个新的前端项目,只需按照提供的文档进行配置和定制,就能搭建起一个符合现代Web标准的开发环境。这样的开源库极大地提高了开发效率,降低了...

Global site tag (gtag.js) - Google Analytics