2009年7月29日

相信大家对样式命名都多少感到困难,特别是想起一个有意义的名,更难。回顾了一下之前写的《 样式命名规则 》(不知道大家使用后有什么感想)结合这段时间使用上发现的一些问题,重新整理了样式的命名规则,希望能更实用些。

要避免当状态改变时名称失去意义,最常见的就是用于布局的类名,如“left”、“right”,当左边栏不再是左边栏的时候,“left”这个名就没有实际意义了(可以看下《 CSS代码命名惯例语义化的方法 》中的“CSS类命名的语义化VS结构化方式”部分)。这与我们所推荐的“命名要有意义”就相违背了,使用序号就更加有问题了。好像没错,不过有好长一段时间都有个问题让我很烦恼,如果一个页面中同个模块出现一次以上,而且细节还不一样,那后面出现的名称应该叫什么呢?难道“one”、“two”就不是序号?其实我们要避免遇到的情况就是当状态(表现)改变时,对应定义的类名不会失去意义。

所谓的状态(表现)改变,有几种情况:

  1. HTML不变,样式定义改变。如果命名使用了表示某一状态的名称,如“red“、“font14“等,必定会引起定义与命名不符的情况,对后继的影响会造成比较大的影响。
  2. 样式定义不变,HTML改变。HTML改变意味着类名可更换,也就是如果类名使用了表示某一状态的名称,反而更有利于修改。
  3. 样式定义与HTML都改变。只需要考虑不要出现第一种情况的结果就可以了。

而实际情况并不是单纯的某一种情况,更多的时候是混杂着出现的。有点远了,回主题。

规则

[ 模块前缀 ] _ 类型 _ ( 作用 | 状态 ) n _ [ 位置 n ]

图例说明:

  • ( 必选 ):必需存在。
  • [ 可选 ]:可根据需要选择。
  • |:多选一。
  • n:可有多个。

名词说明:

模块前缀
模块定义时使用的前缀。
类型
定义类的内容类型。如输入框、文本、段落等等。
作用
定义类的作用,用于对类型的补充。
状态
定义类的状态,用于对类型的补充。
位置
定义类所使用的位置,如首页、导航等等,不排除使用左、右这样的词,但应尽量避免。
  • 每项都可有自己的一个缩写表,同一名称的缩写尽量统一。
  • 所选用的单词应选择不过于具体表示某一状态(如颜色、大小等)的单词,以避免当状态改变时名称失去意义。
  • 由不以数字开头的小写字母(a-z)、数字(0-9)组成。
  • 确保类(.class)的重用性与对象(#id)的唯一性,id避免使用保留字。

例:

模块前缀:

  • 弹出 pop
  • 公共 global,gb
  • 标题 title,tit
  • 提示 hint
  • 菜单 menu
  • 信息 info
  • 预览 pvw
  • Tips tips
  • 导航 nav

类型:

  • 按钮 bt
  • 文本 tx
  • 段落 p
  • 图标 icon
  • input input
  • 颜色 color,c
  • 背景 bg
  • 边框 bor

作用:

  • 设置 set
  • 添加 add
  • 删除 del
  • 操作 op
  • 密码 pw
  • 导入 inc

状态:

  • 成功 suc
  • 失败 lost
  • 透明 tran

位置:

  • 公共 gb
  • 边框 bor
  • 段落 p
  • 弹出 pop
  • 标题 title,tit
  • 菜单 menu
  • 内容 cont
  • 导航 nav
中文解释 命名 中文解释 命名
文本输入框 .input_tx 段落文本颜色 .tx_c_p
密码输入框 .input_pw 相册弹出的设置层 .pop_set_photo
登录密码输入框 .input_pw_login 日志设置成功提示 .hint_suc_blogset
文本颜色 .tx_c 公共提示 .hint_gb

问几个简单的问题,可以帮助我们完成命名:

  1. “什么类型的定义?”——是个输入框,input。
  2. “类型补充说明”——如果一个词说明不清楚,那么补充说明类型,文本输入框,input_tx。
  3. “在哪使用?”——定义要使用的位置在哪?首页的搜索文本输入框,input_search_index。

可能无法覆盖到所有的情况,但相信能解决70%~80%的命名问题。如果结合“模块化”相关的方法去定义,其实所需要定义的名称并不需要很多。如:“hint_tx”表示提示模块的文字定义,“hit_tx_hint”表示提示里文字强调的定义,至于是改变颜色还是加粗,这个就看不同提示模块的需要了。

posted @ 2009-07-29 15:19 wendy_dong 阅读(28) 评论(0) 编辑


2009年7月28日

      纸张的开数只需要各记住一个常用的尺寸就可以了,一般我们只要记住正度16开和大度16开的规格,然后其他的规格可以推算出来,如大16开为210X285mm,大8开为16开长边不变,短边乘2,为285X420mm,其他可根据此算法推算。
2、出血
出血的作用:防止裁切误差出现的。
出血的大小:一般宣传单每边加3mm名片内边各加1mm
出血的情况:宣传单、名片四周都需要出血,杂志、画册订口一侧不需要做出血,白底的内容不需要出血。
3、关于图片
1)导入CD中的图片必须是CMYK模式,分辨率为300TIFF合层图,如需导入背景透明的图像则可以导入PSD图片,但在CD中需要再转一次位图(位图\转换为位图,要选300线,透明背景,CMYK模式)。
2)在CD中做旋转、缩放、图框剪裁等操作的图片需要重新转一次位图(位图\转换为位
图,要选300线,CMYK模式)。

4、关于颜色

1)青紫不并列,黄白不肩随。
不要做出青底紫字,紫底青字,或是黄底白字,白底黄字这种搭配,因为那样搭配会看不清楚内容。

2)金银黑白灰调和色的运用。
在对比强的颜色中运用调和色进行调和,比如蓝底红字,给红字加个白边进行调和,就会使本来看起来不舒服的搭配变得协调起来。

3)可以用同一色系的不同颜色进行搭配。
一个版面中最好不要用超过三种以上的色彩,超过三种以上色彩会使版面看起来很花,但如果想让版面丰富一些,又不想太乱,可以用一个色系的不同颜色来搭配,比如大红,暗红,浅红,这样同属一个红色系,但因为色值不同,效果就会丰富起来。

4)关于黑色
◆印刷中的黑色(如黑字、线条)为K100的单色黑,在CD等排版软件中可以自动叠印,但如在PS中制作则要手动叠印,即将单黑K100的图层的混和模式改成正片叠底。
◆如做大面积黑色底的时候,需要在黑中加青,即C3050K100,这样印出的黑色会亮,否则单色K100的黑印出来会怪怪的。

5)关于红黑渐变:



M100  Y100—— M100  Y100  K100
M100  Y100——  K100 ×

红色到黑色的渐变中的黑色里应该有红色值,那样形成的渐变过渡会非常自然,如果是单纯的红到单黑的渐变,中间的过渡会很难看。

posted @ 2009-07-28 11:19 wendy_dong 阅读(1300) 评论(0) 编辑


2009年7月19日

1.背景图片的问题,
原来的写法: background: url(images/jtnews.jpg) no-repeat 5% 50%;出现浏览器不兼容问题,
修改为 background: url(images/jtnews.jpg) no-repeat 5px center;正确,不知道什么原因。

2.禁止换行问题
white-space:nowrap;禁止换行,设置了宽度。容易出现半个字,对于中英文,标点还有问题。
white-space:inherit;无论中英文,和标点,都可以在一行显示。不会出现半个字。
3.双倍边距问题,
浮动的同时应用了左边距才会有双倍边距
dicplay:inline:解决。
4.使一个div(已知高度)垂直居中的方法一:(margin都是宽度和高度的负值的一半)
 .centipede {
position:absolute;
top:50%;
left:50%;
margin:-113px 0 0 -50%;
width:100%;
height:226px;
}
原理:
1、先让这个DIV绝对定位;
2、让他距离上边50%,左边50%;这会这个DIV的左上角这个点就是窗口的正中间;
3、因为已经知道了这个DIV的高和宽了,那么再从这里点向左移动总宽的一半就可以了,也就是50%; 向上呢也同理;

高度末知要想兼容不太容易 
 绝对定位IE6 BUG 问题:
绝对定位嵌套在相对定位的容器中,IE6处理时会出现问题,原因在于相对定位的容器没有获得布局,为了在IE6中显示正常,需要迫使相对定位的容器拥有布局。
"绝对定位的元素,相对于最近的已定位的祖先元素"
绝对定位的元素,相对于最近的已定位的祖先元素,如果元素没有已定位的祖先元素,那么他的位置相对于最初的包含块

绝对定位嵌套在相对定位的容器中,IE6处理时会出现问题,原因在于相对定位的容器没有获得布局,为了在IE6中显示正常,需要迫使相对定位的容器拥有布局。

一种方法就是设定width和height,可以使用只对IE有效的CSS招数,设定height为1%,如

* html .container { height : 1%; }

posted @ 2009-07-19 21:19 wendy_dong 阅读(70) 评论(0) 编辑


2009年6月28日

http://www.cnbeta.com/articles/87545.htm

posted @ 2009-06-28 20:20 wendy_dong 阅读(77) 评论(0) 编辑


2009年6月19日

posted @ 2009-06-19 15:14 wendy_dong 阅读(21) 评论(0) 编辑

CSS用来定义网站的用户界面,并实现页面展现与内容的分离。CSS在几乎所有的网站都会用到,下面让我们花些精力来确保你的CSS书写的是否标准、合理。这些提示对CSS初学者同样会有很大的帮助。

  1. 样式表索引

    样式表头部索引定义可以帮助你和其它人弄清楚该样式表文件的相关信息,它一般是一段格式化的CSS注释文本。

    • 给出该css文件作者的相关信息
    • 定义站点的布局(几栏,静态布局/动态布局)
    • 记录文件版本号(利于多作者协作及将来更新)
    样式表索引

    样式表索引

  2. 命名锚点

    命名锚点是用来规划整个CSS文件结构的(就好像书签一样),从而使整个CSS文件获得良好的组织。

    命名锚点一般也是书写在样式表头部的索引注释中。CSS本身没有内部的锚点系统,所以我一般采用下面的小技巧来完成。在头部索引拷贝你想找到的锚点,并在整个文档中查找,从而获取该CSS节。(描述的可能不清晰,看下面图应该就明白了)

    命名锚点定义及查找

    命名锚点定义及查找

  3. 避免多余Class定义

    很多人(尤其是新手)在书写CSS中会定义不必要的Class来样式化一些元素。

    其实CSS的一个优雅之处在于它的上下文选择符(即子选择器和相邻同胞选择器),如下:

     

    避免多余Class定义

    避免多余Class定义

  4. 合适的命名

    为class定义一个准确清晰的类名十分关键,它有助于你更好更快的理解CSS定义,不至于混淆。

     

    合适的命名

    合适的命名

  5. 缩写

    在CSS中经常会利用缩写把多个相同类型的属性定义指定为一个。

    CSS缩写会使CSS文档更加干净、简洁。下面是几个例子:

     

    CSS缩写

    CSS缩写

  6. CSS图像拼合(即CSS Sprites技术)

    CSS Sprites技术:将用到的所有背景图片合并为一张图片,使用css背景属性,来控制图片的显示位置和方式。

    CSS Sprites技术的应用可以大大减少HTTP请求的次数,减轻服务器压力,同时缩短了悬停加载图片所需要的时间延迟,使效果更流畅,不会停顿。

    苹果官方网站的菜单设计是CSS Sprites技术应用非常好的案例:

     

    CSS Sprites

    CSS Sprites

  7. 特殊性

    即使在不太复杂的样式表中,也可能有两个或更多规则寻找同一元素,CSS通过选择符特殊性来决定规则的次序。

    简而言之,每个CSS选择符都会分配一个权重。将规则的每个选择器的值加在一起,就可以计算出规则的特殊性。CSS特殊性的使用在大型CSS文件中会很有帮助。

    CSS特殊性在CSS中是比较大的一块内容,很难用几句话描述清楚,下面是几个示例:

     

    CSS 特殊性

    CSS 特殊性

  8. CSS Reset(CSS重置,偶个人叫它CSS初始化)

    CSS Reset用于确保网站在不同浏览器中能够获得相同的展示效果。不同的浏览器有一套自己的初始默认设置,最终导致不同的UI展现。CSS重置就是用来解决这个问题,使你能在不同浏览器展现一致的基础上构建站点。

    我们可能不会要求你一定去使用某个CSS框架,但是希望能书写CSS Reset。我们可以在网上找到不少书写好的CSS Reset样例。

     

    CSS Reset

    CSS Reset

  9. CSS Hacks

    可以说再完美的CSS也无法在所有浏览器中获得一致的展现,这是因为不同的浏览器给予你的CSS不同的解释。如果想要网站在不同的浏览器显示一致,你不得不使用CSS Hacks。

     

    CSS Hacks

    CSS Hacks

    不过使用CSS Hack往往会导致CSS验证出现错误,一个替代的解决方案是为不同的浏览器书写不同的CSS,然后在html中使用条件语句引用它们。

  10. CSS验证

    当你书写完一个CSS文件,对它进行验证是十分必要的。它可以确保书写的CSS没有错误,并且在所有浏览器中正确的展示。

    W3C网站验证是用来验证CSS的常用工具。

     

    CSS验证

    CSS验证

posted @ 2009-06-19 13:08 wendy_dong 阅读(148) 评论(1) 编辑


2009年4月20日

posted @ 2009-04-20 17:26 wendy_dong 阅读(85) 评论(2)  编辑


2009年4月7日

posted @ 2009-04-07 15:54 wendy_dong 阅读(117) 评论(0)  编辑


2009年4月2日

posted @ 2009-04-02 10:21 wendy_dong 阅读(7) 评论(0)  编辑


2009年3月18日

posted @ 2009-03-18 09:29 wendy_dong 阅读(100) 评论(0)  编辑


posts - 7, comments - 3, trackbacks - 0, articles - 14

Copyright © wendy_dong