`
ice-cream
  • 浏览: 329173 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

css命名规范

    博客分类:
  • Css
阅读更多

最近看到了些关于css命名方面的文章,对于这方面我也有自己的看法。
我接触css有很长一段时间了,对于css的命名我也是在逐步改进。
感觉工作中比较常碰见的问题:
1.需要给层定义各种尺寸的宽度,高度基本是不用定义的
2.层的padding和层之间的margin
3.给文字高亮颜色
4.各种样式的tab和button
5.不同的背景色
6.各种样式的border
7.左浮动,右浮动
8.粗体,斜体

9.居左,居中,居右,垂直居顶,居中,居底对齐

1.需要给层定义各种尺寸的宽度,高度基本是不用定义的
以em为单位的是弹性布局,目前浏览器都支持页面整体缩放,不太可能会用到调整浏览器字体大小,所以层的宽度没有必要设置成em单位,“是时候不用考虑基于字体大小(em)的设计了”
以%为单位的是流体布局,这种布局比较难控制,用的较少
最常见的是以px为单位的固定布局,需要定义以px单位的页面通常是栅格布局
那么不了解栅格的朋友可以先看看,"网页的栅格系统设计"
首先保证页面的宽度一定是950px,分成24列,这个时候就要定义24种可能情况的宽度
我目前只用过blueprint框架,它采用的命名方式是:
.span-1 {width:30px;}
.span-2 {width:70px;}
.span-3 {width:110px;}
.span-4 {width:150px;}
.span-5 {width:190px;}
.span-6 {width:230px;}
.span-7 {width:270px;}
.span-8 {width:310px;}
.span-9 {width:350px;}
.span-10 {width:390px;}
.span-11 {width:430px;}
.span-12 {width:470px;}
.span-13 {width:510px;}
.span-14 {width:550px;}
.span-15 {width:590px;}
.span-16 {width:630px;}
.span-17 {width:670px;}
.span-18 {width:710px;}
.span-19 {width:750px;}
.span-20 {width:790px;}
.span-21 {width:830px;}
.span-22 {width:870px;}
.span-23 {width:910px;}
.span-24 {width:950px;}
我个人觉得span根据标签意思是内联元素,内联元素是不能定义宽度的,这里span不太合适。
采用grid-1,grid-2,...grid-24或者w-1,w-2,...w-24会更合适

2.层的padding和层之间的margin
栅格布局每列之间的间距是10px,所以层之间的margin的全局定义方式:
.w-1,.w-2,...,.w-23{margin-right:10px;}
最大宽度w-24刚好是950px,不需要定义margin。

少数一些时候用到w-1,w-2,...,w-23时列之间可能不需要margin-right,这时需要定义
.last{margin-right:0;}去reset之间的

我们还需要定义些常用到的margin和padding,于是有:
.ml-10{margin-left:10px}
.mr-10{margin-right:10px}
.mt-10{margin-top:10px}
.mb-10{margin-bottom:10px}
.pl-10{padding-left:10px}
.pr-10{padding-right:10px}
.pt-10{padding-top:10px}
.pb-10{padding-bottom:10px}

mg-10{margin:10px;}
pd-10{padding:10px;}
...
以次类推

3.给文字高亮
项目中这个需求一直在变动,通常要定义几种全局的高亮颜色.
常见的命名方式是.red或者.hightlight-red...,class中含有颜色的名字这种方式其实不好。
项目中如果需要添加换色的功能,需要用其它颜色的样式表reset之间的样式表,那之前定义的高亮颜色在其它颜色中就不一定适合,而class却还要用原来的,这样就不语义化了。

就算不考虑换色功能,但希望做出来的页面能更加满足用户的感受,这个高亮的颜色也可能一直在变的。
所以建议用hightlight-1,hightlight-2...,通常高亮颜色在1到3种之间,不会太多,容易记住。

4.各种样式的tab和button
.tab-1{...}
...
.button-1{...}
...

5.不同的背景色
.bc-1{background-color:#;}
...

6.各种样式的border
.b1s-1{border:1px solid #000;}
.b1d-1{border:1px dashed #000;}
...

4,5,6中之所以class中用-1而不用-color,理由跟第三种“给文字高亮”类似

7.左浮动,有浮动, 居左,居右,居中
.f-l{float:left;}
.f-r{float:right;}
.f-n{float:none;}

还有清浮动的
.c-b{clear:both;}
.c-l{clear:left;}

.c-r{clear:right;}

8.粗体,斜体
与其定义class不如直接用相应的标签,反正粗体或斜体的内容总归需要放入一个标签中。
粗体就直接用<b></b>,斜体直接用<em></em>

 

9.居左 ,居中 ,居右,垂直居 顶,居中,居底对齐

.ta-l{text-align:left;}

.ta-c{text-align:center;}

.ta-r{text-align:right;}

 

.va-t{vertical-align:top;}

.va-m{vertical-align:middle;}

.va-b{vertical-align:bottom;}

 

分享到:
评论
16 楼 karry 2009-11-25  
诸葛孔明 写道
bluemeteor 写道
hl-red或者hl1多好,可以重用,减少样式数量,要多好有多好。


这种命名方式,如果有换肤的需求就不适合了

所以命名的时候不要出现red 或者blue这样带有颜色的字样。
否则换肤如果换css的话,hl-red却是显示的蓝色,就让人纳闷了。
15 楼 hax 2009-11-18  
换肤有几种做法。
1. alternative stylesheet
2. 使用一个html/body上的class来表示theme,然后给selector加上这个附加class,来override默认样式
3. 结合上述两种
14 楼 诸葛孔明 2009-11-16  
bluemeteor 写道
hl-red或者hl1多好,可以重用,减少样式数量,要多好有多好。


这种命名方式,如果有换肤的需求就不适合了
13 楼 bluemeteor 2009-11-16  
ice-cream 写道
to ls:
我还是认为用highlight1,highlight2比用#loginForm .highlight和#searchResult .hightlight这种方式会更好。
你这样命名对loginForm和searchResult是语义了,可是其他地方你也这样用吗,那岂不是要定义很多样式了,难道要:
#loginForm .highlight{color:blue}
#searchResult .hightlight(color:red)
#xx .hightlight(color:yellow)
...
#xxxx .hightlight(color:green)
这样吗?太多样式了,这种方式不好。
关于命名规范,我也还在整理中,随着工作经验的丰富和不断的摸索,只能说找到一套比较适合的方式来执行


咬文嚼字一些的话,这些只有一个样式,就是highlight,而如果使用highlight1,highlight2....才是很多样式。

所谓#XXX .highlight,这种行为不是定义新的样式,而是cascade,也就是CSS里面的C,通过C,我们可以非常具体定义元素的表现形式,同时更重要的是他可以描述,loginForm中的highlight应该是蓝色的,searchResult中的highlight应该是红色的.

这里一个争执在于,如果searchResult中的highlight和error message中的highlight都是红色的,为什么我们不把它们归结为一类呢?hl-red或者hl1多好,可以重用,减少样式数量,要多好有多好。

(刚刚写了很多,自己又删掉了……唔,很多东西没有对错的)

hax上面的文章写得很好,有些东西看上去很美,用起来还是要慎重的.
12 楼 hax 2009-11-14  
11 楼 ice-cream 2009-11-14  
to ls:
我还是认为用highlight1,highlight2比用#loginForm .highlight和#searchResult .hightlight这种方式会更好。
你这样命名对loginForm和searchResult是语义了,可是其他地方你也这样用吗,那岂不是要定义很多样式了,难道要:
#loginForm .highlight{color:blue}
#searchResult .hightlight(color:red)
#xx .hightlight(color:yellow)
...
#xxxx .hightlight(color:green)
这样吗?太多样式了,这种方式不好。
关于命名规范,我也还在整理中,随着工作经验的丰富和不断的摸索,只能说找到一套比较适合的方式来执行
10 楼 bluemeteor 2009-11-13  
楼主整理辛苦,但是我还是认为这种定义CSS规范是远离初衷的,老生常谈是枯燥乏味的,但楼主既然提到了语义化这个词,那么只说一俩句,欢..欢迎飞转...

楼主所提供这种CSS规范是inline style的一种高层抽象,虽然不能用对错来衡量这种方法,但是这是一种歧路,对于一个项目我更倾向于【用语义化定义,用cascade组合】来应用CSS.

比如.highligh类


#loginForm .highlight{color:blue}

#searchResult .hightlight(color:red)

比hl1和hl2不是更友好么?
9 楼 liedexuan 2009-11-13  
CSS规范 不错 受教了。
8 楼 libo_591 2009-11-13  
MM,年方几何呀?
7 楼 witcheryne 2009-11-13  
<div class="quote_title">ice-cream 写道</div>
<div class="quote_div">
<p>....</p>
<p><br><span style="color: #0000ff;">1.需要给层定义各种尺寸的宽度,高度基本是不用定义的</span>
<br>
以em为单位的是弹性布局,目前浏览器都支持页面整体缩放,不太可能会用到调整浏览器字体大小,所以层的宽度没有必要设置成em单位,“是时候不用考虑基于字体大小(em)的设计了”<br>
以%为单位的是流体布局,这种布局比较难控制,用的较少<br>
最常见的是以px为单位的固定布局,需要定义以px单位的页面通常是栅格布局<br>
那么不了解栅格的朋友可以先看看,"网页的栅格系统设计"<br>
首先保证页面的宽度一定是950px,分成24列,这个时候就要定义24种可能情况的宽度<br>
我目前只用过blueprint框架,它采用的命名方式是:<br>
.span-1 {width:30px;}<br>
.span-2 {width:70px;}<br>
.span-3 {width:110px;}<br>
.span-4 {width:150px;}<br>
.span-5 {width:190px;}<br>
.span-6 {width:230px;}<br>
.span-7 {width:270px;}<br>
.span-8 {width:310px;}<br>
.span-9 {width:350px;}<br>
.span-10 {width:390px;}<br>
.span-11 {width:430px;}<br>
.span-12 {width:470px;}<br>
.span-13 {width:510px;}<br>
.span-14 {width:550px;}<br>
.span-15 {width:590px;}<br>
.span-16 {width:630px;}<br>
.span-17 {width:670px;}<br>
.span-18 {width:710px;}<br>
.span-19 {width:750px;}<br>
.span-20 {width:790px;}<br>
.span-21 {width:830px;}<br>
.span-22 {width:870px;}<br>
.span-23 {width:910px;}<br>
.span-24 {width:950px;}<br>
我个人觉得span根据标签意思是内联元素,内联元素是不能定义宽度的,这里span不太合适。<br>
采用grid-1,grid-2,...grid-24或者w-1,w-2,...w-24会更合适<br><br><span style="color: #0000ff;">2.层的padding和层之间的margin</span>
<br>...</p>
<p> </p>
</div>
<p>960grid 这个css框架 好像就是用grid-1, 2, 3 这种命名方式... 用起来很容易理解。。</p>
6 楼 makemyownlife 2009-11-12  
Aguo 写道
后台程序员能遇到这样的前端真是一种幸福

同意,前端与后台程序员很好的合作才能做出好的应用。
5 楼 Aguo 2009-11-12  
后台程序员能遇到这样的前端真是一种幸福
4 楼 ice-cream 2009-11-08  
karry 写道
如果一个元素自己有一个样式test,现在是需要左浮动,你是倾向加一个f-l样式,还是在test里面加一个float:left,最好告诉我你选择的原因,因为我还要说服别人。

当然倾向加一个f-l,因为你定义的这个test在页面中可能会左,右浮动,或者不浮动。
除非页面中test大多数是左浮动,那你可以给test左浮动,其它的情况再去reset吧。
3 楼 karry 2009-11-08  
有道理啊有道理 ,看来我栅格的不彻底。
顺便问问,我有时候很矛盾,如果一个元素自己有一个样式test,现在是需要左浮动,你是倾向加一个f-l样式,还是在test里面加一个float:left,最好告诉我你选择的原因,因为我还要说服别人。
2 楼 ice-cream 2009-11-08  
karry 写道

我喜欢用 grid-30 grid-70 grid-110。。。这种方式,好记

用grid-1,...,grid-24,因为是栅格,
只要子列grid后面的数字相加等于父元素grid后面的数字就行了,例如
<div class="grid-10">
<div class="grid-4"></div>
<div class="grid-6"></div>
</div>
这种算法比宽度值相加简单些
1 楼 karry 2009-11-08  

我喜欢用 grid-30 grid-70 grid-110。。。这种方式,好记
另外还要常用的 prel--position:relative  pabs--position:absolute  t-center--text-align:center

相关推荐

    web前端+css命名 规范

    首先,我们了解CSS命名规范的基本原则: 1. **有意义的命名**:选择能够明确描述元素功能或状态的名称,如`btn-primary`代表主要按钮,`user-info`表示用户信息区域。 2. **避免使用ID选择器**:在CSS中,ID选择器...

    常用的css命名规则.txt

    本文将深入解析“常用的CSS命名规则”这一主题,旨在帮助开发者理解并掌握一系列实用的CSS命名规范。 ### 命名规则的重要性 在CSS开发过程中,合理的命名规则可以显著提高代码的可读性和可维护性,减少后期修改和...

    CSS命名规范(个人总结)

    以下是一些关于CSS命名规范的关键点,这些都是基于个人经验的总结: 1. **大小写规则**:推荐使用小写字母来编写CSS选择器,这符合CSS标准且易于阅读。例如,`#header`、`.mainContent`。 2. **ID和类名**:ID通常...

    CSS命名规范CSS命名规范

    CSS 命名规范是指在编写 CSS 代码时,遵守一定的命名规则,以便于代码的阅读、维护和重用。下面是一些常用的 CSS 命名规范: * 文件命名规范:global.css、layout.css、font.css、link.css、print.css 等 * 常用类/...

    CSS命名规则

    ### CSS命名规则详解 #### 一、引言 在Web开发过程中,良好的CSS命名规则不仅有助于提高代码可读性与可维护性,还能避免不同浏览器之间的兼容性问题。本文将根据给定的内容深入探讨CSS选择器命名规则及其在实际...

    css命名规范(英文命名)

    CSS 命名规范(英文命名) CSS 命名规范是指在 CSS 文件中统一命名的规范,以便提高代码的可读性和维护性。以下是 CSS 命名规范的详细说明: 文件命名规范 在 CSS 中,文件命名是非常重要的。以下是一些常见的...

    常用的CSS命名规则

    ### 常用的CSS命名规则详解 在前端开发中,合理的CSS命名规则不仅能够提升代码的可读性和可维护性,还能够提高团队协作效率。以下是对标题、描述及部分给定内容中所涉及的CSS命名规则的详细解读。 #### 1. 基础...

    css命名规则

    - **定义**:除了上述提到的命名规则外,开发团队还可以根据项目需求自定义一套适合自己的命名规范。 - **示例**:例如,可以采用简短的前缀+功能描述的方式进行命名,如`.btn-primary`表示“主按钮”。 #### 四、...

    css命名规则.txt

    本文将根据给定文件“css命名规则.txt”的内容进行深入解读,为网页设计师提供一套高质量CSS代码的标签规范。 #### 二、基本元素命名 1. **Header**: 用于页面顶部区域的标记。 - 示例:`&lt;div class="header"&gt;` ...

    css命名规范.doc

    以下是对CSS命名规范的一些详细解释和示例: 1. **小写字母和中横线分隔**: - 所有CSS类名应该使用小写字母,避免使用驼峰式或全大写字母。如`.logo`、`.nav`等。 - 当需要扩展类名时,使用中横线`-`作为分隔符...

    前端常用css命名规范

    在前端开发中,CSS命名规范是提升代码可读性、可维护性和团队协作效率的关键因素。以下是关于前端CSS命名规范的详细说明: 首先,我们理解为何需要制定CSS命名规范。在多人协作的项目中,统一的命名规范可以降低...

    SEO优化中的div+css命名规则

    **一、CSS命名规范** 1. **有意义的命名**:避免使用无意义的ID或类名,如“div1”,“box”等。应采用描述性的名称,如“header”、“content”、“footer”等,这能帮助搜索引擎理解页面结构。 2. **简洁性**:...

    WEB前端开发规范文档CSS命名规范.docx

    【CSS命名规范】 在Web前端开发中,CSS命名规范对于团队协作、代码可读性和维护性至关重要。以下是一些核心的CSS命名规则: 1. **语义化命名**:CSS选择器应该反映其对应的HTML元素的功能或内容。例如,用`header`...

    div+css命名规范

    为了提高代码的可读性和团队协作效率,遵循一定的CSS命名规范至关重要。以下是一些常见的Div+CSS命名规则和实例: 1. **容器与模块**: - `container` 或 `box`:用于表示页面的主要或局部容器,通常包裹其他元素...

Global site tag (gtag.js) - Google Analytics