- 浏览: 328249 次
- 性别:
- 来自: 上海
文章分类
最新评论
最近看到了些关于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;}
评论
这种命名方式,如果有换肤的需求就不适合了
所以命名的时候不要出现red 或者blue这样带有颜色的字样。
否则换肤如果换css的话,hl-red却是显示的蓝色,就让人纳闷了。
1. alternative stylesheet
2. 使用一个html/body上的class来表示theme,然后给selector加上这个附加class,来override默认样式
3. 结合上述两种
这种命名方式,如果有换肤的需求就不适合了
我还是认为用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上面的文章写得很好,有些东西看上去很美,用起来还是要慎重的.
我还是认为用highlight1,highlight2比用#loginForm .highlight和#searchResult .hightlight这种方式会更好。
你这样命名对loginForm和searchResult是语义了,可是其他地方你也这样用吗,那岂不是要定义很多样式了,难道要:
#loginForm .highlight{color:blue}
#searchResult .hightlight(color:red)
#xx .hightlight(color:yellow)
...
#xxxx .hightlight(color:green)
这样吗?太多样式了,这种方式不好。
关于命名规范,我也还在整理中,随着工作经验的丰富和不断的摸索,只能说找到一套比较适合的方式来执行
楼主所提供这种CSS规范是inline style的一种高层抽象,虽然不能用对错来衡量这种方法,但是这是一种歧路,对于一个项目我更倾向于【用语义化定义,用cascade组合】来应用CSS.
比如.highligh类
用
#loginForm .highlight{color:blue}
和
#searchResult .hightlight(color:red)
比hl1和hl2不是更友好么?
<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>
同意,前端与后台程序员很好的合作才能做出好的应用。
当然倾向加一个f-l,因为你定义的这个test在页面中可能会左,右浮动,或者不浮动。
除非页面中test大多数是左浮动,那你可以给test左浮动,其它的情况再去reset吧。
顺便问问,我有时候很矛盾,如果一个元素自己有一个样式test,现在是需要左浮动,你是倾向加一个f-l样式,还是在test里面加一个float:left,最好告诉我你选择的原因,因为我还要说服别人。
我喜欢用 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>
这种算法比宽度值相加简单些
我喜欢用 grid-30 grid-70 grid-110。。。这种方式,好记
另外还要常用的 prel--position:relative pabs--position:absolute t-center--text-align:center
发表评论
-
IE各版本的css hack
2012-12-06 14:34 1407一:IE各版本的css hack HACK EX ... -
如何去掉链接虚线框
2011-10-08 13:58 1704链接的虚线框影响整体风格,我们在工作经常会将它去掉,而采用 ... -
chrome浏览器font-size<12px无效解决办法
2010-11-30 15:08 3650当样式表里font-size<12px时,chrome浏 ... -
IE下li内元素浮动产生边距的解决办法
2010-07-16 14:25 2628类似于这样的一个结构 <ul> &l ... -
图片和文字的对齐
2009-11-07 15:50 10333最近工作中遇到些关于“图片和文字的对齐”的问题: ... -
img标签下多余空白bug解决方法
2009-06-25 13:56 2251根据原因的不同要用不 ... -
命名规则有利于SEO
2009-05-11 13:21 1296搜索引擎优化(seo)有很多工作要做,其中对代码的优化是一个很 ... -
页面输出时一些常用的小技巧(一)
2009-04-07 23:43 2189页面输出时一些常用的小技巧(二) 1. 菜单一 ... -
button按钮在 IE 中两边被拉伸的解决办法
2009-03-07 18:40 1819大家在写按钮(input (type="button ... -
用div+css模拟表格对角线
2009-02-09 10:59 2194在蓝色理想 上看到一篇用css写的对角线,觉得很有用。 把 ... -
IE6下兼容position:fixed的问题
2009-01-15 17:23 3484做网页时经常会有让某 ... -
[译文]On having layout
2008-12-30 20:44 1985介绍 Internet Explorer 中有很多奇怪的渲染 ... -
css实现垂直居中
2008-12-15 13:53 1433如果是用table写的表格,那么用vertical-align ... -
文本溢出时显示省略标记
2008-11-21 17:55 3546语法:text-overflow : clip | e ... -
是时候不用考虑基于字体大小(em)的设计了
2008-11-01 00:22 1689一篇不错的文章,转自 ... -
网页的栅格系统设计
2008-10-30 21:31 1339栅格系统的形成 1692年,新登基的法国国王路易十四 ... -
CSS滤镜
2008-10-24 14:44 1250下面是一些滤镜的描述, ... -
网站灰黑色CSS滤镜代码
2008-10-24 10:32 1793html { filter:progid:DXImageTra ... -
IE6默认不缓存背景图片,引起鼠标抖动的解决方法
2008-10-09 13:51 3789在IE6下,如果拖动的DOM元素使用了背景图,在Drag的过程 ... -
ink和@import引用css文件方法的区别
2008-09-17 18:11 3310<link> 元素所参考的样式用户可以自由的选择 ...
相关推荐
首先,我们了解CSS命名规范的基本原则: 1. **有意义的命名**:选择能够明确描述元素功能或状态的名称,如`btn-primary`代表主要按钮,`user-info`表示用户信息区域。 2. **避免使用ID选择器**:在CSS中,ID选择器...
本文将深入解析“常用的CSS命名规则”这一主题,旨在帮助开发者理解并掌握一系列实用的CSS命名规范。 ### 命名规则的重要性 在CSS开发过程中,合理的命名规则可以显著提高代码的可读性和可维护性,减少后期修改和...
以下是一些关于CSS命名规范的关键点,这些都是基于个人经验的总结: 1. **大小写规则**:推荐使用小写字母来编写CSS选择器,这符合CSS标准且易于阅读。例如,`#header`、`.mainContent`。 2. **ID和类名**:ID通常...
CSS 命名规范是指在编写 CSS 代码时,遵守一定的命名规则,以便于代码的阅读、维护和重用。下面是一些常用的 CSS 命名规范: * 文件命名规范:global.css、layout.css、font.css、link.css、print.css 等 * 常用类/...
### CSS命名规则详解 #### 一、引言 在Web开发过程中,良好的CSS命名规则不仅有助于提高代码可读性与可维护性,还能避免不同浏览器之间的兼容性问题。本文将根据给定的内容深入探讨CSS选择器命名规则及其在实际...
CSS 命名规范(英文命名) CSS 命名规范是指在 CSS 文件中统一命名的规范,以便提高代码的可读性和维护性。以下是 CSS 命名规范的详细说明: 文件命名规范 在 CSS 中,文件命名是非常重要的。以下是一些常见的...
### 常用的CSS命名规则详解 在前端开发中,合理的CSS命名规则不仅能够提升代码的可读性和可维护性,还能够提高团队协作效率。以下是对标题、描述及部分给定内容中所涉及的CSS命名规则的详细解读。 #### 1. 基础...
- **定义**:除了上述提到的命名规则外,开发团队还可以根据项目需求自定义一套适合自己的命名规范。 - **示例**:例如,可以采用简短的前缀+功能描述的方式进行命名,如`.btn-primary`表示“主按钮”。 #### 四、...
本文将根据给定文件“css命名规则.txt”的内容进行深入解读,为网页设计师提供一套高质量CSS代码的标签规范。 #### 二、基本元素命名 1. **Header**: 用于页面顶部区域的标记。 - 示例:`<div class="header">` ...
以下是对CSS命名规范的一些详细解释和示例: 1. **小写字母和中横线分隔**: - 所有CSS类名应该使用小写字母,避免使用驼峰式或全大写字母。如`.logo`、`.nav`等。 - 当需要扩展类名时,使用中横线`-`作为分隔符...
在前端开发中,CSS命名规范是提升代码可读性、可维护性和团队协作效率的关键因素。以下是关于前端CSS命名规范的详细说明: 首先,我们理解为何需要制定CSS命名规范。在多人协作的项目中,统一的命名规范可以降低...
**一、CSS命名规范** 1. **有意义的命名**:避免使用无意义的ID或类名,如“div1”,“box”等。应采用描述性的名称,如“header”、“content”、“footer”等,这能帮助搜索引擎理解页面结构。 2. **简洁性**:...
【CSS命名规范】 在Web前端开发中,CSS命名规范对于团队协作、代码可读性和维护性至关重要。以下是一些核心的CSS命名规则: 1. **语义化命名**:CSS选择器应该反映其对应的HTML元素的功能或内容。例如,用`header`...
为了提高代码的可读性和团队协作效率,遵循一定的CSS命名规范至关重要。以下是一些常见的Div+CSS命名规则和实例: 1. **容器与模块**: - `container` 或 `box`:用于表示页面的主要或局部容器,通常包裹其他元素...