css栅格化网站设计(栅栏布局模块化命名)

作者:我就是个世界 发表于:2012-06-28


看之前建议先看一下我收藏的前一篇 [url=http://www.husw.net/blog/post/1408/]《栅格化研究总结前析》[/url]里面对A a i 950 24 做了一定的解释可能 字母 a 的大小写有些出入

先来看下淘宝网的一处3栏布局:

[img]http://www.cssk8.com/uploads/allimg/090510/0KP22328-0.jpg[/img]

这里是对应的代码:

[img]http://www.cssk8.com/uploads/allimg/090510/0KP2AK-1.jpg[/img]

我们可以看到 class=”grid-c3-s5e7″ 这个命名似乎有些特别,

再看看其包含的class=”col-main” 和 class=”col-sub” 以及 class=”col-extra skin-orange”

[b]再多一些样本代码:[/b]

.grid-c, .grid-c2-s4, .grid-c2-s4f, .grid-c2, .grid-c2f, .grid-c2-s6, .grid-c2-s6f, .grid-c2-s7, .grid-c2-s7f, .grid-c2-s8, .grid-c2-s8f, .grid-c2-s9, .grid-c2-s9f, .grid-c2-s10, .grid-c2-s10f, .grid-c2-s11, .grid-c2-s11f, .grid-c2-s12, .grid-c2-s12f, .grid-c3, .grid-c3f, .grid-c3e, .grid-c3d, .grid-c3c, .grid-c3b, .grid-c3-s5e7, .grid-c3-s5e7f, .grid-c3-s5e7e, .grid-c3-s5e7d, .grid-c3-s5e7c, .grid-c3-s5e7b, .grid-c3-s9e6, .grid-c3-s9e6f, .grid-c3-s9e6e, .grid-c3-s9e6d, .grid-c3-s9e6c, .grid-c3-s9e6b, .grid-c3-s8e8, .main-wrap, .col-sub, .col-extra {

}

[b]我们选择其中一个来仔细看下可以尝试着作出这样的解释:[/b]

[img]http://www.cssk8.com/uploads/allimg/090510/0KP22538-2.gif[/img]

上图中 [b]s5e7[/b] 里的 [b]5[/b] 和 [b]7[/b] 代表的是在 [b]24栏[/b] 中所占的栏数。

[b]如下这样更方便我们进行模块化操作:[/b]

.grid-c3 {}

.grid-c3-s5e7 {}

.grid-c3-s5e7 col-main {}

.grid-c3-s5e7 col-sub {}

.grid-c3-s5e7 col-extra {}

.grid-c2 {}

.grid-c2-s7f {}

.grid-c2-s7f col-main {}

.grid-c2-s7f col-sub {}

      稍微注意下你会发现 上例中我只提到了 s, e[/b] 的解释,并没有对 f, b, d[/b] 做出解释,因为我觉得原理我们已经掌握,[b]f b d[/b] 只是淘宝因内容区域不同而采取的命名方法(应该可以这样理解)。

原本 [b]-s5e7 , -s7f , -s5e7d , -s5e7b , -s9e6c[/b] 之类的就不能解释 DIV+CSS命名规则有利于SEO

只是为了让我们更方便的使用,我这个人喜欢简洁些的风格,因此在这里我对它进行了升级。

下面看下整合出属于自己的[b]栅栏布局命名[/b],我将用在公司蜕变网的新版上,来看下我的命名方法:

i 代表间距, a 代表网格的边长

[img]http://www.cssk8.com/uploads/allimg/090510/0KP254S-3.jpg[/img]

(三栏页面栅格布局-例:部分列表页) Grid-c3-c6e5

[b]class=”grid-c3-w13c6e5″[/b] 完整版

[b]class=”grid-c3-c6e5″[/b] 简洁版

注意这里的数字和上图中的数字进行对比,你会发现我省掉了w13即最宽的那一栏main(通常最宽的为main),

我将c 和 e这样除了main之外的窄栏通常固定宽度, main的宽度则为width:100%; 具体实现如下:

假设最外层的[b]div[/b] 为

.content {

position:relative;

width:总宽减窄栏的宽度;

padding-left&right:窄栏的宽度;

}

窄栏浮动,main 绝对定位

.main {

position:absolute;

top:xx;

left&right:窄栏的宽度;

}

先作下简单的说明,这里与淘宝网命名不同的是我没有采取 s(sub)和 e (extra) 这样的习惯,

而是用到了 [b]w(west), c(center), e(east)[/b]

—-我将网页上的方位分为上北下南左西右东

不使用 l (left) 等上下左右表示是因为在如宋体等字体下 left 里的 l 与数字1 很容易造成混乱。[/b]

[b]下面是一系列方位栅栏模块化命名例如:[/b]

[img]http://www.cssk8.com/uploads/allimg/090510/0KP24X3-4.jpg[/img]

(两栏页面栅格布局-例:首页) [b]Grid-c2-e5[/b]

[img]http://www.cssk8.com/uploads/allimg/090510/0KP21962-5.jpg[/img]

(两栏页面栅格布局-例:商品详细页) [b]Grid-c2-w6[/b]

[img]http://www.cssk8.com/uploads/allimg/090510/0KP22418-6.jpg[/img]

(两栏页面栅格布局-例:注册流程页) [b]Grid-c2-e7[/b]

[img]http://www.cssk8.com/uploads/allimg/090510/0KP254S-3.jpg[/img]

方案一:(三栏页面栅格布局-例:部分列表页) [b]Grid-c3-c6e5[/b]

[img]http://www.cssk8.com/uploads/allimg/090510/0KP2HS-8.jpg[/img]

方案二:(三栏页面栅格布局-例:部分列表页) [b]Grid-c3-c7e5[/b]

[img]http://www.cssk8.com/uploads/allimg/090510/0KP24J6-9.jpg[/img]

(三栏页面栅格布局-例:商城主页、个人空间预览页) [b]Grid-c3-w6e5[/b]

[img]http://www.cssk8.com/uploads/allimg/090510/0KP23H7-10.jpg[/img]

(三栏页面栅格布局-例:个人空间管理页) [b]Grid-c3-w5e6[/b]

以上命名都是由[b]class=”grid-c3-w5c13e6″[/b] 这类的完整版去掉main栏目(即最宽的一栏)

简化到[b]class=”grid-c3-w5e6″[/b] 这类简洁版(很快可以猜出-w5e6所对应的宽栏位c13,即左边占24-5-6=13a的main),

不想用上面的方法为main定width:100%;

那我们可以这样:

.grid-c3-c6e5 .main{ width:13a;}

.grid-c3-c6e5 .sidebar { width:5a;}

.grid-c3-c6e5 .service { width:6a;}

      [b].grid-c3-c6e5[/b]的名字看起来蛮长的,考虑过去掉[b].grid-c3-c6e5[/b]中的 [b]grid[/b] 这个单词,但似乎不太方便阅读,况且后面会出现 [b].mode-a , .mode-b[/b] 之类的模块命名,统一下会更好;

这里的命名习惯建议使用的表意命名《超越CSS》有提到过。

      可以看到简洁版的只有3个字母出现 [b]w (west), c (center), e (east)[/b] 这里已经做了解释

不用记太多的字母含义,grid-c3-c6e5[/b]这样的命名方法让我们更好的对栅格化布局进行操作。

转载请附本链接:http://www.thefast.cn/?p=350

蓝色理想论坛:http://bbs.blueidea.com/thread-2926561-1-1.html

博客园观点:http://www.cnblogs.com/cnpass/archive/2009/05/07/cnpass.html

补充:

光顾着解释命名了,再来回顾下这段代码的结构:

[img]http://www.cssk8.com/uploads/allimg/090510/0KP2AK-1.jpg[/img]

你会发现”宝儿们”把 col-main 放到了 col-sub 和 col-extra 上面,这么做很直白,为了SEO优化,将最重要的内容优先展示在搜索引擎面前。它的实现方法我想大家应该比我清楚。

关于 grid-c3-s5e7 子级[/b]的命名我想大家不必一味参照淘宝的做法,我想每个人都有自己对web的理解和看法。

比如:我可能会选择

网易主页的命名 左边 productMain 中间 midContent 右侧 rightContent

腾讯主页的命名 左侧 resArea 中间 proArea 右侧 adArea

甚至是 左侧 leftsidebar 中间 main 右侧 rightsidebar

说到命名之前我在给图片命名时,发现有些以字母AD开头的图片名称,在遨游浏览器下是不能显示的,估计是当成广告给屏蔽掉了。

以上内容仅供参考讨论,愿我们在web的发展历程上越走越远。

分享:

扫一扫在手机阅读、分享本文

请发表您的评论