Blueprint是个好框架,本教程会深入介绍你可以用它来做什么,也会说到什么时候不适合用。
Blueprint简介
Blueprint是一个CSS框架,为减少开发时间而设计。它可以构架起有坚实基础的CSS,其中包含合理的排版(typography)、可定制的网格(grid)、打印样式等。
但是Blueprint不是银弹,它适用于每个页面都需要独特的设计。在决定使用Blueprint前建议先看看Blueprint例子以决定是否适合你。你可以检出tests
目录,里面例子展示大部分Blueprint样式。
“框架”这个词也许有些误导,Blueprint并不会建议你如何组织你的CSS文件。它更像一个工具箱,你可以从中选出你需要的。
结构概述
自下而上的看Blueprint:
CSS布局: CSS reset: 移除浏览器的默认规则。 Typography: 默认提供一些漂亮的排版和颜色。 Grid: 提供一组样式来制作网格。
第二部分是脚本。你可以它来自定义框架,可以是列数、宽度等外观,还可以是路径、命名空间等。我们有两个脚本: 1. Compressor: 用于压缩和自定义源文件。 2. Validator: 用于验证Blueprint核心文件。
以上是简单介绍,接下来让我们进入细节。首先,我们看看CSS部分。然后我们再介绍脚本,以及如何通过它数和自定制框架。
设置Blueprint
为了使用Blueprint,你必须包含以下三个文件在你的HTML中:
-
blueprint/screen.css
:
主要文件,页面展示的样式都在里面。
-
blueprint/print.css
:
用于打印。
-
blueprint/ie.css
:
用于IE浏览器下的校正。
在HTML中嵌入下面代码来引用(请确认路径正确):
1
2
3
4
5
|
<link rel="stylesheet" href="css/blueprint/screen.css" type="text/css" media="screen, projection" />
<link rel="stylesheet" href="css/blueprint/print.css" type="text/css" media="print" />
<!--[if lt IE 8]>
<link rel="stylesheet" href="css/blueprint/ie.css" type="text/css" media="screen, projection" />
<![endif]-->
|
(原文提示XHTML需要用”/>”结束标签,上面代码中我已经直接加上了)
使用Blueprint里的CSS
之前已经提过,Blueprint有三个布局,前两个布局,CSS reset和默认排版用于设置默认HTML样式。所以你不需要更改这两个文件。如果你想更改全局字体大小等,建议你写在自己的CSS文件里,以便将来更新Blueprint版本。
排版相关class
While the typography of Blueprint mainly applies itself, there’s a few classes provided. 下面是一个它们名字的列表和介绍它们的作用:
.hide
隐藏元素
.quiet
使字体颜色柔和
.loud
黑色字体
highlight
黄色背景
.added
绿色背景
.removed
红色背景
.first
移除左侧margin/padding
.last
移除右侧margin/padding
.top
移除顶部margin/padding
.bottom
移除底部margin/padding
表格样式
Blueprint可以通过给输入元素加.text
,.title
类来控制,其中.text
表示普通大小,.title
提供一个大字体的输入框。
这里还有一些类可以用于成功或失败信息:
div.error
建议一个失败框(红色)。
div.notice
建议一个提示框(黄色)。
div.success
建议一个成功框(绿色)。
建立网格
第三个布局是网格,是一个给你网站建立各样网格的工具。记住网格背后的大部分CSS都可以自定义(下面会讲到)。在这个部分我会使用默认设置。
默认网格有24列,每列宽30px,边距(margin)10px。总共宽为950px,适合1024x768的分辨率。如果你想要更窄的设计,可以看下面自定义网格一节。
怎么用Blueprint来建立网格呢?新建一个<div/>
来代表一列,并且给它加一个.span-x
的class。比如,如果你想要一个三列的布局,两窄一宽,并且包含头尾,可以参考下面的代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<div class="container">
<div class="span-24">
头部
</div>
<div class="span-4">
第一列
</div>
<div class="span-16">
中间列
</div>
<div class="span-4 last">
最后一列
</div>
<div class="span-24">
尾部
</div>
</div>
|
此外,还有两个class你应该知道。首先,每个Blueprint页面应该包含在一个class为.container
的div里,一般紧跟在body标签后。
第二,每行的最后一列(默认24列),应该用class.last
来移除右侧的边距(margin)。可以参考tests/parts/
里的例子。这些文件告诉了你Blueprint的网格能做些什么。
这里是一个其他网格相关class的快速概述:
.append-x
附加(在后面加)x条空列。
.prepend-x
追加(在前面)x条空列。
.push-x
推送x列到左侧。可用于切换列。
.pull-x
推送x列到右侧。可用于切换列。
.border
列右侧加分界线。
.colborder
建立新列,分界线在中部。
.clear
换行,无论是否有空。
.showgrid
给容器或列添加后能看见网格和基线。
在这个列表中,x
用于append/prepend时范围是1-23,用于push/pull时是1-24。如果你自定义了新的列数,这个范围会随之变化。
下面是另一个例子,包含4列等宽,前两列间有分界线,后两列间也有,4列的中间有段空白。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<div class="container">
<div class="span-5 border">
第一列
</div>
<div class="span-5 append-4">
第二列
</div>
<div class="span-5 border">
第三列
</div>
<div class="span-5 last">
第四列
</div>
</div>
|
你也可以通过嵌套列来实现想要的布局。下面例子展现的是页面左半部有四个长方形,两上两下,右半部有一个长方形。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<div class="container">
<div class="span-12">
<div class="span-6">
左上
</div>
<div class="span-6 last">
右上
</div>
<div class="span-6">
左下
</div>
<div class="span-6 last">
右下
</div>
</div>
<div class="span-12 last">
另一块
</div>
</div>
|
如果不理解可以在浏览器里尝试上面的代码。想看更过的如何使用class的例子,请看/tests/parts/grid.html
。
脚本
Blueprint有两个脚本:一个用于压缩和自定义CSS,另一个是验证核心CSS文件,以免你修改了某些文件。
验证器(The Validator)
验证器的工作很简单——检查Blueprint核心CSS里的文件。脚本使用配套版本的W3C CSS验证器来完成。为了运行,你需要安装Ruby。然后你可以运行$
ruby validate.rb
。
请注意Blueprint有几个验证错误。它们是已知的,来自于几个为了保持浏览器一致性的CSS hack。
压缩器(The Compressor)
你的HTML里引用压缩版的核心CSS文件时,当你做过修改,需要重新压缩。这是压缩器脚本的作用。
另外,你可以在这里自定义网格。为了自定义网格,需要使用一个特殊的设置文件,当你运行压缩器时,就会生成新的CSS。新压缩的文件将会使用你的设置。
你之需要重新运行脚本来重新压缩。这会解析核心CSS文件并在blueprint文件夹里生成新文件。与验证器一样,需要安装Ruby。在lib
目录里执行$
ruby compress.rb
。
执行这个文件会将blueprint/src
下的文件合并成三个文件:ie.css
,print.css
,screen.css
。
但是你可以通过加参数来改变行为。执行$ ruby compress.rb -h
查看你可以使用的基本参数。
自定义设置
你可以阅读lib/compress.rb
里的文档来学习如何自定义设置。
参考
Blueprint CSS Framework Tutorial(官方原文)
官网
Demo
转自:http://fancyoung.com/blog/blueprint-tutorial/
分享到:
相关推荐
"springdm"可能是旧版Spring Dynamic Modules的简称,它是Spring对OSGi的支持,而“helloworld”通常是入门级的示例,用于演示基本的配置和功能。"client"可能是一个客户端应用,展示了如何消费在OSGi环境中发布的...
- **低门槛**:相比其他网络营销手段,博客入门成本更低。 - **灵活性**:可以根据个人兴趣或市场需求自由选择主题。 - **长期收益**:一旦建立起稳定的读者群,即使不频繁更新也能持续获得流量和收入。 #### 常见...
此外,Karaf 还支持拆分捆绑包以及自定义部署器(默认包含 Blueprint 和 Spring 部署器)。 2. **动态配置**:服务通常通过 OSGi 的 Configuration Admin 服务进行配置。这些配置可以通过在 `etc` 目录中的属性文件...
apiblueprint SpringMVC代码生成器此工具可用于从一个或多个apiblueprint apib文件生成Java源文件。 它以可重复的方式进行,因此您的API文档成为事实的源头。 即使实现了完整的Java后端,也可以根据需要从Markdown...
本文将围绕"oculus-quest-unity-blueprint"项目,深入探讨如何在Unity中构建适用于Oculus Quest的游戏入门模板。 首先,我们要理解C#在这个过程中的角色。C#是Unity的主要编程语言,通过编写C#脚本,我们可以控制...
Create React App入门 该项目是通过引导的。 可用脚本 在项目目录中,可以运行: yarn start 在开发模式下运行应用程序。 打开在浏览器中查看它。 如果您进行编辑,则页面将重新加载。 您还将在控制台中看到任何...
vertx-kue, Vert.x Blueprint项目 Vert.x Kue,这是由 Vert.x 支持的优先级任务队列 Vert.x Kue Vert.x Kue 是用 Vert.x 开发的优先级任务队列,并以的Redis支持。 它是 automattic/kue的Vert.x 实现版本。这个蓝图...
入门 分两步在本地进行设置: 环境变量 用您的值替换.env.example中的值,然后将此文件重命名为.env : FLASK_APP :您的应用程序的入口点; 应该是wsgi.py FLASK_ENV :运行应用程序的环境; development或...
输出包括bundle的ID、状态、Blueprint或Spring XML文件的bean创建情况、启动级别以及名称和版本。通过管道和命令行工具,可以方便地搜索特定的bundle,例如查找与"Camel"相关的bundle。 4. **使用Apache ServiceMix...
它分为蓝图类(Blueprint Class)和蓝图函数库(Blueprint Function Library)等不同类型,可以用来创建几乎所有的游戏逻辑。 在UE4中,蓝图的使用涉及以下关键知识点: 1. 事件图(Event Graph):事件图是蓝图中...
正在安装npm install api-blueprint-visitors 入门api-blueprint-visitors中提供了两件事: 访客基类makeASTVisitable函数,使的AST可访问。 假设我们要创建一个脚本,该脚本对蓝图文件中的所有资源,请求和响应进行...
Create React App入门该项目是通过引导的。可用脚本在项目目录中,可以运行:yarn start 在开发模式下运行该应用程序。 打开在浏览器中查看它。 如果您进行编辑,则页面将重新加载。 您还将在控制台中看到任何棉绒...
Flask App Blueprint是一个样板/入门项目,它将帮助您开始使用易于学习但功能强大的技术堆栈。 您可以在不到25分钟的时间内启动并运行堆栈,因此您可以专注于制作真实的东西。 hackathon,原型,MVP,想法验证或...
### Flask Web 开发入门知识点概览 #### 1. Flask 框架简介与特性 - **Flask** 是一个用 Python 编写的轻量级 Web 应用框架。相较于 Django 这样的全功能框架,Flask 更加灵活,允许开发者根据实际需求选择合适的...
**Spring OSGi 入门** Spring OSGi 是 Spring 框架与开放服务网关规范(OSGi)的结合,它为基于 Java 的应用程序提供了模块化开发的能力。OSGi 是一个动态的、模块化的运行时环境,使得开发者可以创建可热插拔的...
5. **Blueprint或Declarative Services**:这两种是OSGi中的服务配置方式,Blueprint更接近XML,而Declarative Services使用注解,简化了服务的声明和管理。 6. **远程服务**:OSGi Remote Services允许Bundle之间...
UI设计包括菜单、控件布局、提示信息等,通常使用GUI库如Unity的UGUI或Unreal的Blueprint。 在"3D游戏程序设计入门中文版+源代码程序"这个压缩包中,可能包含了详细的教程文档和配套的源代码示例。通过阅读文档和...
Spring OSGi 是一个将 Spring 框架与 OSGi(Open Service Gateway Initiative)容器相结合的开源项目,旨在提供一种在 ...提供的压缩包文件可能包含了入门手册和示例代码,这些资源将有助于你快速上手 Spring OSGi。
5. **使用Blueprint或PAX Wiring**:这两个是OSGI的XML配置模型,它们提供了在OSGI环境中声明和管理依赖的方式,可以方便地与Spring配置结合使用。 6. **打包和部署**:将所有bundle打包成jar文件,并部署到支持...