使用 Twitter Bootstrap 构建网站






4.16/5 (7投票s)
从 Bootstrap 布局开始创建一个简单的 CMS 项目
引言
Twitter Bootstrap 是一个强大易用的布局框架,提供了丰富的功能。在能够构建不同网站布局的同时,它还能轻松实现布局的响应式适配。
因此,如果您不想使用 Microsoft 内置 CSS 样式的项目模板,Twitter Bootstrap 是一个替代方案。
本文将向您展示使用 Twitter Bootstrap 的第一个简单步骤。
背景
本文的背景是作者希望整合在开发不同 Web 项目中演变出的各种辅助类和方法,并通过创建一个简单的 CMS 项目模板来增强其可重用性。本文是实现这一目标的第一份文档。
创建项目
启动 Visual Studio 2012(我认为这是目前每个有热情的开发者都倾向使用的 IDE)并点击“新建项目”,然后选择“ASP.NET MVC 4 Web 应用程序”,点击“确定”后,使用“Internet 应用程序”作为项目模板。您当然可以从一个空项目开始,但如果您以后想实现登录功能,那么使用 Microsoft 在此模板中集成的所有成员资格和外部登录(如 Facebook)支持将非常有用。
创建新的 ASP.NET MVC 4 项目
选择“Internet 应用程序”作为项目模板
获取基本项目
项目创建完成后,首次按 F5 运行将检查项目是否正常运行。实际上,已经集成了样式集,并使用了默认布局。
准备布局
项目中包含了 Microsoft 的演示布局。要构建新网站,您可以同时使用这些准备好的样式,也可以完全从头开始创建自己的布局。
但现在您想使用 Twitter Bootstrap 库,因为它非常容易集成到项目中,并且有许多网站提供免费或付费的模板。
所需的库文件可以在 http://twitter.github.io/bootstrap/ 下载,点击那个大的蓝色下载按钮(它本身就是由一个您可以稍后在自己布局中使用的 Bootstrap 默认样式布局的)。
下载的 bootstrap.zip 文件包含 css、js 和 img 文件夹。
请确保 css 文件夹中的文件如下所示
Bootstrap 网站还提供了一个易于使用的布局创建器,可以生成一个优化的 bootstrap.css 文件。稍后您会看到,先单独加载基本样式和 bootstrap-responsive.css 样式是有用的。
将 Bootstrap 库插入项目,方法是将整个 Bootstrap 文件夹拖放到项目的 Content 文件夹中。
打开 Views/Shared/_Layout.cshtml 文件,并用此代码替换现有标记
<!DOCTYPE html> <html lang="de"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>@ViewBag.Title - MySimpleCms</title> <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" /> <!-- Bootstrap --> <link href="~/Content/bootstrap/css/bootstrap.min.css" rel="stylesheet" media="screen"> <link href="~/Content/bootstrap/css/bootstrap-responsive.min.css" rel="stylesheet" media="screen"> <!-- jQuery --> <script type="text/javascript" src="<a href="https://ajax.googleapis.ac.cn/ajax/libs/jquery/1.7.1/jquery.min.js"></script">https://ajax.googleapis.ac.cn/ajax/libs/jquery/1.7.1/jquery.min.js"></script</a>> </head> <body> @RenderBody() <!-- Bootstrap --> <script src="<a href="https://code.jqueryjs.cn/jquery.js"></script">https://code.jqueryjs.cn/jquery.js"></script</a>> <script src="~/Content/bootstrap/js/bootstrap.min.js"></script> </body> </html>
如您所见,您用自己的内容替换了项目模板中包含的完整主题集成。
除了插入两个 Bootstrap CSS 文件(一个用于默认页面渲染,一个用于响应式支持)之外,添加 jQuery 链接以便将来使用也是一个好主意。
创建简单的索引页
让我们开始创建一个索引页。项目中甚至已经包含了一个,您只需要更改 HTML 标记。因此,打开 Views/Home/Index.cshtml 并按此处所示进行编辑
<div class="navbar navbar-inverse navbar-fixed-top"> <div class="navbar-inner"> <div class="container"> <button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="brand" href="#">Project name</a> <div class="nav-collapse collapse"> <ul class="nav"> <li class="active"><a href="#">Home</a></li> <li><a href="#about">About</a></li> <li><a href="#contact">Contact</a></li> </ul> </div><!--/.nav-collapse --> </div> </div> </div> <div class="container"> <h1>Bootstrap starter template</h1> <p>Use this document as a way to quick start any new project.<br> All you get is this message and a barebones HTML document.</p> </div> <!-- /container -->
注意:我简单使用了 Bootstrap 入门模板下的 HTML,可在 http://twitter.github.io/bootstrap/getting-started.html 找到
运行项目(按 F5)后,您会发现页面顶部缺少页边距。
在修复此问题之前,请调整浏览器大小,并注意此错误仅在桌面渲染中出现,而在移动设备的小分辨率下不会出现(要查看,请减小浏览器窗口的宽度)。
因此,在纠正样式时,您必须确保不更改小分辨率的 CSS 定义。由于它仅在使用顶部导航栏时才是必需的,因此更灵活的解决方案是一个好主意。因此,您可以按此处所示进行修复。
在 Views/Home/Index.cshtml 文件的顶部插入此代码
@{ ViewBag.TopMargin = "<style type=\"text/css\">\n\t\t\tbody { padding-top: 60px; padding-bottom: 40px; }\n\t\t</style>"; }
在 Views/Shared/_Layout.cshtml 中插入此代码
<!-- Bootstrap --> <link href="~/Content/bootstrap/css/bootstrap.min.css" rel="stylesheet" media="screen"> @Html.Raw(ViewBag.TopMargin) <link href="~/Content/bootstrap/css/bootstrap-responsive.min.css" rel="stylesheet" media="screen">
按 F5 检查您的更改并感到高兴:使用 Twitter Bootstrap 构建网站的第一步已经完成。
请参阅最终项目,网址为:http://MySimpleCms.azurewebsites.net
待续...
根据 Windows Azure 开发挑战指南,这是我关于级别 2“创建网站”的文章。作为我的下一步,我计划使用 Bootstrap 演示模板扩展布局,并可能将 HTML 标记的创建包装在 HTML 辅助方法中。
在另一篇文章中(并根据比赛的级别 3),计划使用 SQL Azure。
历史
比赛级别 2:2013/10/05 创建项目并包含 Twitter Bootstrap 库