关注前端开发/网页设计/网站可用性/用户体验,暴风彬彬的趣味互联网生活…
由于一些读者对于960 Grid System CSS Framework的原理和使用方法比较感兴趣,暴风彬彬今天将和大家一同分享这篇关于960 grid CSS Framework的基本原理和简单的使用方法。
关于CSS框架其实一直是一个比较热门且很有争议的话题,的确,国内的一些前端er们越来越关注CSS框架,并都开始尝试使用,觉得CSS框架能够节省更多的开发时间,显著提高工作效率。当然,还有很多人持相反意见,认为CSS并没有这么高级以至于要涉及到框架!我记得在cnBeta上曾经有位程序员讽刺道:”这年头,连CSS都有框架了?!”。今天暴风彬彬并不是要向大家介绍什么是CSS框架,也不会介绍各种CSS框架的优缺点。只是要讲解一下目前在国外很热门的一个框架,严格讲是网格系统,那就是960 Grid System。通过这篇教程你会知道使用960框架之后,你的开发工作会更快的开展。
如果您对其他CSS框架也很感兴趣或想了解更多CSS框架,您可以参考《精选15个国外CSS框架》。
首先,你需要学习关于”如何让框架工作”。你可以通过自己的尝试来学习,不过我仍然会在这里为大家进行讲解,那就开始吧。
不要编辑960.css
先说一点需要注意的:不要编辑960.css文件,如果你修改了它,那么你今后将无法更新这个框架。
读取网格
在我们使用外部文件中的CSS代码之前,首先要在我们的HTML文件中调用它们。像这样调用:
<link rel=”stylesheet” type=”text/css” media=”all” href=”path/to/960/reset.css” />
<link rel=”stylesheet” type=”text/css” media=”all” href=”path/to/960/960.css” />
<link rel=”stylesheet” type=”text/css” media=”all” href=”path/to/960/text.css” />
当我们调用好它们以后,我们要调用自己的CSS文件了。例如,你也许会将你的CSS文件命名为style.css或site.css或者其它什么的。这样调用它:
<link rel=”stylesheet” type=”text/css” media=”all” href=”path/to/style.css” />
在960框架中,你可以选择两种类名为.container_12 和 .container_16的容器。这两种容器都是960px的宽度(这就是为什么叫做960 grid),但他们的不同之处是它们包含不同数量的列。顾名思义,.container_12的容器被分为12列,而 .container_16被分为16列。这两种960px宽的容器都是水平居中的。
你可以选择很多种不同的列宽组合,不过在这两种容器中是有所不同的。你可以通过打开960.css来了解这些宽度,但这对于设计一个网站并没有什么必要。在这里暴风彬彬将一个很有用的技巧让你使用框架更加容易。
例如:如果你想在你的容器中仅使用两列(分别是主内容区/侧边栏),你可以这样做:
<div class=”container_12″>
<div class=”grid_4″>sidebar</div>
<div class=”grid_8″>main content</div>
</div>
看到上面的代码你也许已经明白,不过我还是要讲一下。也就是说你在container_12这个容器中使用了grid_4和grid_8两列,4+8恰好等于12!明白了吗?使用网格系统的好处之一就是你不用去计算没列的宽度到底是多少,省去了很多运算。
下面让我们看看如何编写四列布局:
<div class=”container_12″>
<div class=”grid_2″>sidebar</div>
<div class=”grid_6″>main content</div>
<div class=”grid_2″>photo’s</div>
<div class=”grid_2″>advertisement</div>
</div>
正如你看到的,这个系统工作得很好。如果你尝试使用你的浏览器读取他的话,你会发现有一些不对劲的地方。不过不要紧,那正是我们下一个话题要讨论的。
默认情况下,每列之间都会存在一些margin。每个grid_(这里插入数值)类都有10px的左margin和右margin。也就是说两列之间的margin值是20px。
20px的margin能让布局保持应有的留白并看上去更平滑,这也是我喜欢960 grid System的原因之一。
在上面的例子中,我们将它使用浏览器读取时出现了一些问题,现在我们来修复它。
问题在于每个列都包含左margin和右margin,但是最左面的列不应该有左margin,最右面的列不应该有右margin。(够罗嗦!)下面是解决方法:
<div class=”container_12″>
<div class=”grid_2 alpha”>sidebar</div>
<div class=”grid_6″>main content</div>
<div class=”grid_2″>photo’s</div>
<div class=”grid_2 omega”>advertisement</div>
</div>
你仅需添加alpha类来去除左margin,添加omega类去除右margin。好了,现在我们的布局已经可以完美在浏览器中对齐了。(是的,包括IE6)
事实上,你已经掌握了如何使用960框架创建基本的网格布局了。不过你也许还想为自己的布局添加一些样式。
<div class=”container_12″>
<div id=”sidebar” class=”grid_2 alpha”>sidebar</div>
<div id=”content” class=”grid_6″>main content</div>
<div id=”photos” class=”grid_2″>photo’s</div>
<div id=”advertisements” class=”grid_2 omega”>advertisement</div>
</div>
由于CSS使用优先级的形式来觉得如何解释样式,而id要比class的优先级高。这样我们就可以在我们的独立CSS文件中以id选择符创建个性化的样式了。如果凑巧有的样式属性与960相同但值又不同,浏览器会优先选择你的CSS文件中的样式。当然,如果您感兴趣,也可以看看上面的实例添加样式后的实际效果。
这是这样!你已经掌握的如何使用960网格系统来创建兼容所有浏览器的布局。当你完全掌握熟练960系统之后,你会发现它为你节省了很多很多编写CSS的时间。
你在之前是否使用过960网格系统?或其它CSS框架?你是否认为CSS框架能够改善你的代码?欢迎留下你的观点。
订阅彬Go以查看前端开发/CSS框架最新教程及资源。
英文原文:960 CSS Framework – Learn the Basics
翻译原文:960 Grid System 基本原理及使用方法(暴风彬彬)
26 条 关于 "960 Grid System 基本原理及使用方法" 的评论
讲述的非常好,对偶起到了一个扫盲作用,期待这系列的文章有一个更深入的讲解。
先回答提问,没有使用过任何框架,但最近正研究各种css 框架,希望能借助他们提高开发效率,规范css 的定义。960这个框架觉得不错,好理解,使用也方便,但是他限制宽度。这样使用起来很局限,希望你以后的文章能较详细介绍多几种框架,很感激
只简单用过EXtJs的布局样式,别的正在研究和尝试。希望能多掌握几种,以应对不同的需求来提高开发效率。
960确实很好,好理解,使用又方便,但是他的宽度只能960,这样在应用中很局限。
希望能多介绍几种框架,不胜感激!
之前也是刚开始接触CSS-Framework,看了你的讲解,起到了一个抛砖引玉的作用,相信学其他的就知道从哪入手了。。
感谢彬Go给我们带来这么好的学习资源。。。
blueprint 飘过~
我感觉用960的PS模版在设计是排版还是很有用的,但如果用在css 布局时 还不如自己写来的方便快捷“` 呵呵 个人见解.
我们用 yahoo yui
非常好!学习了!
有机会的话也写写关于YUI的使用心得或方法哦!
CSS框架是必须要的。如果只针对某个样式一次性的吧所需的效果都同意写在一个样式里,那么就根本无法为其他类似效果的样式所调用。
这是在我目前的工作所总结出来的。
我觉得这个960确实可以简化页面的设计,包括很多复用的东西,960PX的宽度也可以适用大部分的网站,但是用CSS的框架的后果,是不是连基本的CSS都会忘记呢?
看来以后框架会慢慢的腐蚀人的想法的,会让人越来越不愿意去思考了…
受益匪浅…
彬彬问个问题:一个中小网站用的着CSS框架吗?我还是不知道是否真的必须要用框架才能提高效率。
是不是架构真的比手写CSS要来的快多了。是不是不用关心布局只关心细节就可以了啊。
就CSS来说,个人还是喜欢自己手写的。或许有时候会出现很多奇奇怪怪的问题,但是很享受CSS布局带来的那份自由。
这样的效果可以吗?
photo’s
photo’s
个人觉得css还是自己写比较好,可以参考众多框架,总结自己的一套框架,对于经常赶活做网站,又怕失了水准的人,用框架的确不错,节省了不少时间,在此谢谢博主精彩的讲解,受益匪浅。
忘了说一点,众浏览器的差异,特别是ie的bug,让前端设计人员着实头疼,很多框架解决了这些问题,让前端设计人员把精力都放在网站的设计上,确实不错。。。(呼吁浏览器统一标准的那一天早点到来。。。如果真那样的话,前端设计软件人员是不是要减薪?而css框架存在的意义还有多大呢?)
[...] 篇文
感觉这个框架仅此而已嘛?
希望再有点深入的介绍就好了
遗憾的是在火狐和chrome中不支持alpha和omega。ie6可以
可不可以出一些视频呢?边听边做感觉会更明白点,不过还是谢谢博主了
确实是我见过的最好的CSS框架
sidebar
main content
photo’s
advertisement
这段代码似乎应换成
sidebar
main content
photo’s
advertisement
较为合理,实际测试了这两种写法的显示效果还是有一定差异的。
按照第一种写法,sidebar块的左边确实没有留空,但是advertisement块的右边却留下了20px的空白
而按照第二种写法,sidebar块的左边和advertisement块的右边都各有10px的空白,内容就居中了。
发现评论中直接输出html代码结果了而不是源码,⊙﹏⊙b汗
grid框架的好处除了css开发的效率外,还有视觉美观与信息条理的考量。
想问博主一个问题,我想给 grid _3加一个边框,然后它就跑到下面一行去了…..
我觉得960框架用在小型网站,确实省了好多时间
我要评论 >>