来源:
Jeffpan的博客 原文地址:
http://www.thefast.cn/?p=350
来公司的时间不算很长,最近公司现有的
蜕变网将要进行一次大的改版,作为公司的前端开发人员自然要在行动前做出些准备,于是先是为网站做了栅格化设计,总宽950的24栏栅格。OK,废话不多说,下面赶紧开始。
看之前建议先看一下我收藏的一篇
《栅格化研究总结前析》http://www.thefast.cn/?p=307 里面对A a i 950 24 做了一定的解释可能 字母 a 的大小写有些出入
先来看下淘宝网的一处3栏布局:
这里是对应的代码:
我们可以看到 class=”grid-c3-s5e7″ 这个命名似乎有些特别,
再看看其包含的class=”col-main” 和 class=”col-sub” 以及 class=”col-extra skin-orange”
再多一些样本代码:复制内容到剪贴板
代码:
.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 {
}我们选择其中一个来仔细看下可以尝试着作出这样的解释:
上图中
s5e7 里的
5 和
7 代表的是在
24栏 中所占的栏数。
如下这样更方便我们进行模块化操作:复制内容到剪贴板
代码:
.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 的解释,并没有对
f, b, d 做出解释,因为我觉得原理我们已经掌握,
f b d 只是淘宝因内容区域不同而采取的命名方法(应该可以这样理解)。原本
-s5e7 , -s7f , -s5e7d , -s5e7b , -s9e6c 之类的就不能解释
DIV+CSS命名规则有利于SEO
只是为了让我们更方便的使用,我这个人喜欢简洁些的风格,因此在这里我对它进行了升级。
下面看下整合出属于自己的
栅栏布局命名,我将用在公司
蜕变网的新版上,来看下我的命名方法:
i=10px 代表的是间距
(三栏页面栅格布局-例:部分列表页) Grid-c3-c6e5
复制内容到剪贴板
代码:
class=”grid-c3-w13c6e5″ 完整版
class=”grid-c3-c6e5″ 简洁版
注意这里的数字和上图中的数字进行对比,你会发现我省掉了w13即最宽的那一栏main(通常最宽的为main),
我将c 和 e这样除了main之外的窄栏通常固定宽度, main的宽度则为width:100%; 具体实现如下:
假设最外层的div 为 <div class=”content”>
.content {
position:relative;
width:总宽减窄栏的宽度;
padding-left&right:窄栏的宽度;
}
窄栏浮动,main 绝对定位
.main {
position:absolute;
top:xx;
left&right:窄栏的宽度;
} 先作下简单的说明,这里与淘宝网命名不同的是我没有采取 s(sub)和 e (extra) 这样的习惯,
而是用到了
w(west), c(center), e(east)
—-我将网页上的方位分为上北下南左西右东不使用 l (left) 等上下左右表示是因为在如宋体等字体下 left 里的 l 与数字1 很容易造成混乱。
下面是一系列方位栅栏模块化命名例如:
(两栏页面栅格布局-例:首页) Grid-c2-e5
(三栏页面栅格布局-例:个人空间管理页) Grid-c3-w5e6
以上命名都是由
class=”grid-c3-w5c13e6″ 这类的完整版去掉main栏目(即最宽的一栏)
简化到
class=”grid-c3-w5e6″ 这类简洁版(很快可以猜出-w5e6所对应的宽栏位c13,即左边占24-5-6=13a的main),
不想用上面的方法为main定width:100%;
那我们可以这样:
复制内容到剪贴板
代码:
.rid-c3-c6e5 .main{ width:13a;}
.grid-c3-c6e5 .sidebar { width:5a;}
.grid-c3-c6e5 .service { width:6a;} .grid-c3-c6e5的名字看起来蛮长的,考虑过去掉
.grid-c3-c6e5中的
grid 这个单词,但似乎不太方便阅读,况且后面会出现 .mode-a , .mode-b 之类的模块命名,统一下会更好;
这里的命名习惯建议使用的表意命名
《超越CSS》有提到过。
可以看到简洁版的只有3个字母出现
w (west), c (center), e (east)
不用记太多的字母含义,
grid-c3-c6e5这样的命名方法让我们更好的对
栅格化布局进行操作。
没怎么在蓝色发过,图片大小不会控制 -_-!
这里对原版做了删减,更多详细请点击下面的链接
出处:
Jeffpan的博客
转载请附本链接:
http://www.thefast.cn/?p=350
补充:
很高兴 淘宝ued 成员来说明原委(之前我还真没看过类似的文章)
我用w(west) c (center) e(east) 来命名是没有追根究底的精神去 探查 除了s(sub) e(extra) 之外的 c f b d 这些字母的含义。
同时我也觉得 像 -s5e7 这样的后缀原本对seo等不能很好的解释,况且还有很多s e c f b d 这类的字母就算已对我解释一遍,我觉得给出一个像 .grid-c3-s5e7d,.grid-c3-s9e6f,.grid-c3-s9e6e 这样的 className 也得像刚学五笔背字根一样去想其含义。
个人还是觉得用 左中右(即东、中、西) 方位定位更好记,两栏就是 东和西 w(west) 和 e(east);
同理3栏就是 东边 、中间 、西边 即 w(west)、c(center)、e(east) 每栏所占的 a 用数字表示
例如 Grid-c3-w5c13e6 就是 3栏布局它的含义解释如下:
左栏 west=5a-i=5*40-10=190px;
中间 center=13a-i=13*40-10=510px; (13a最大自然是 col-main)
右栏 east=6a-i=6*40-10=230px;
左中右3项加一起24栏,因此我们去掉一栏也能知道栏目的宽度。
从上面的图例中可以看出,这类的class命名不管是两栏还是三栏我都会去掉最宽的那一栏。
因此 Grid-c3-w5c13e6 可以简写为 Grid-c3-w5e6 (c=24-5-6=13)
希望淘宝UED 能给出另一些字母的解释,觉得此类方法蛮值得学习的。扩充 lifesinger:http://lifesinger.org/blog/?p=659
再次补充:
光顾着解释命名了,再来回顾下这段代码的结构:
你会发现”宝儿们”把 col-main 放到了 col-sub 和 col-extra 上面,这么做很直白为了SEO优化,将最重要的内容优先展示在搜索引擎面前。
他的实现方法我想大家应该比我清楚。
关于 grid-c3-s5e7 子级的命名我想大家不必一味参照淘宝的做法,我想每个人都有自己对web的理解和看法。
比如:我可能会选择
网易主页的命名 左边 productMain 中间 midContent 右侧 rightContent
腾讯主页的命名 左侧 resArea 中间 proArea 右侧 adArea
甚至是 左侧 leftsidebar 中间 main 右侧 rightsidebar
说到命名之前我在给图片命名时,发现有些以字母AD开头的图片名称,在遨游浏览器下是不能显示的,估计是当成广告给屏蔽掉了。
以上内容仅供参考讨论,愿我们在web的发展历程上越走越远。(母亲节快到了,不能只关注web哦~)
[
本帖最后由 impan 于 2009-5-8 14:48 编辑 ]