帮我写出更好的CSS代码的一些技巧
所属分类:
网页制作 / CSS
阅读数:
1690
收藏 0赞 0分享
这只是一些帮我写出更好的代码的一些技巧。当然这绝不是此文的结束,当我发现了其它技巧时,我会继续分享的。
1. Reset
真的,要一直使用一个reset,无论是使用Eric Meyer Reset、YUI Reset、或者你自己的定制的reset,一定要使用。
这可以简单到仅仅将所有元素中的margin和padding属性去掉:
html, body, div, h1, h2, h3, h4, h5, h6, ul, ol, dl, li, dt, dd, p, blockquote,
pre, form, fieldset, table, th, td { margin: 0; padding: 0; }
Eric Meyer和YUI的Resets样式是很棒的,但对我来说,它们走的太远了。我想要你清除所有东西,然后再重新定义元素的许多属性。这就是Eric Meyer所推荐的。如果有更有效的方法是用它的话,你不应该只是拿来他的样式文件,将它直接放到自己的项目中——提炼它,在它的基础上重建,把它变成你自己的。
哦,请不要再这样:
* { margin: 0; padding: 0; }
它被使用的地方太多了,如果把一个单选框的padding去掉,你觉得会发生什么事情? 表单元素有的时候会有些比较时髦的表现,所以最好还是让它们保持原状吧。
2. 按字母排序
一个小测试
下面的两个例子,你认为哪个能较快找到margin-right属性的位置?
例1
div#header h1 {
z-index: 101;
color: #000;
position: relative;
line-height: 24px;
margin-right: 48px;
border-bottom: 1px solid #dedede;
font-size: 18px;
}
例2
div#header h1 {
border-bottom: 1px solid #dedede;
color: #000;
font-size: 18px;
line-height: 24px;
margin-right: 48px;
position: relative;
z-index: 101;
}
不要告诉我例2没有例1快!通过将这些样式的属性按照字母排序,你所创建的连贯性将帮你减少花费在寻找某个属性的时间。
我知道有的人以这种方法组织排序,其他人又用另外的方法来组织样式的顺序。但是在我所在的公司,我们一致下定决心按照字母来排序。当你和其他人共同开发代码的时候,这种方法肯定对你有用。每次看到某个样式表没有按照字母排序,我就很讨厌,因为它们看起来比较凌乱无序……
#p#
这只是一些帮我写出更好的代码的一些技巧。当然这绝不是此文的结束,当我发现了其它技巧时,我会继续分享的。
3.有组织的
你应该组织你的样式,这样你就可以比较容易的找到想要的内容以及放在一起的相关条目。这可以使用注释的方法。例如,我是这样组织我的样式表的:
4. 一致性
无论你现在以何种方式编码,保持下去。我十分讨厌关于完全单行或者完全多行的争议,这本身是没有什么可争议的! 每个人都有自己的看法,所以就用你认为对的并自始至终保持下去。
就我个人而言,我使用混合模式,如果一个样式有超过3条属性,我就采用多行:
div#header { float: left; width: 100%; }
div#header div.column {
border-right: 1px solid #ccc;
float: right;
margin-right: 50px;
padding: 10px;
width: 300px;
}
div#header h1 { float: left; position: relative; width: 250px; }
我使用这种方法是因为我的文本编辑器一行在换行前正好能容纳大概3个属性,如果没有太多的属性,显然单行要比多行更易读。
5.从正确的地方开始
在你写好你的标签之前不要动你的样式文件
当我准备开工的时候,在我创建一个CSS文件之前,我检查并对整个文档进行编码(HTML),从开始body标签到结束整个body标签。不添加任何多余的div、id或class。我会添加一些通用的div,比如头部,内容,底部,因为我知道这些东西肯定会有。
通过先编码整个文档,你可以避免出现多DIV症或多类症,这些毛病有的时候可能是致命的! 你只需要在你开始写CSS和确定需要另外的东西来实现相关效果的时候再加入它们。
使用CSS的向后选择器来定义子元素。不要直接自动的为元素添加类或id。请记住,如果一个文档没有良好的格式(结构),CSS是毫无价值的。
*编辑注: 我不能足够的强调这一点。就像Trevor 说的, 在没有100%完成HTML之前,不要动你的CSS文件。
结论
这只是一些帮我写出更好的代码的一些技巧。当然这绝不是此文的结束,当我发现了其它技巧时,我会继续分享的。
/*****Reset*****/
Reset
/*****Basic Elements*****/
为基本元素定义样式: body, h1-h6, ul, ol, a, p, etc.
/*****Generic Classes*****/
定义一些单独的样式,比如,浮动、去掉元素的底部边距等。
是的,可能他们不够语义化,但是,它们对有效的编码是很有效的。
/*****Basic Layout*****/
定义基本模板: 头部、底部、等,用来定义网站的基本结构
/*****Header*****/
定义头部的所有元素
/*****Content*****/
定义内容区域的所有元素
/*****Footer*****/
底部样式
/*****Etc*****/
继续定义其它样式通过使用注释和对相似元素进行分组,可以更快的找到你需要的内容。
CSS配合JavaScript做酷的动态页面效果
利用CSS配合JavaScript的可以做很多更酷的动态页面效果,在本教程的最后给大家简单介绍一下CSS配合JS的应用。首先,要搞清楚事件和动作的概念。在客户端脚本中,JavaScript 通过对事件进行响应来获得与用户的交互。例如,当用户单击一个按钮或者在某段文字上移动鼠标
收藏 0赞 0分享
WEB标准,Web前端开发工程师必备技术列表
想要打造并拥有一流的Web产品开发团队,在团队成员基础能力上一定要下功夫。对于Web前端产品开发来说,仅仅掌握Web1.0时代简单的"网页套接"是完全不够的。我结合自己的团队配备,特此罗列了Web前端产品工程师所涉及的技能列表如下:
通过许多实际项目,
收藏 0赞 0分享
用CSS制作Alpha滤镜测试板
alpha滤镜给制作网页特效提供了较大的创作空间,但由于它控制参数较多,在实际应用时,为了确定一组合适的参数值,不得不反复调整修改,在编辑窗口和预览窗口来回倒腾,甚是麻烦,本文介绍了一种简单的方法。制作一个“Alpha滤镜参数测试板”,在测试板上输入参数
收藏 0赞 0分享
非常流行的所谓的气泡窗口
普通的Alt无法自定义风格,而Sweet Titles通过JS脚本与CSS的集合.自定义了这种伪Alt风格.
前一段时间非常流行的,就所谓的气泡窗口(鼠标移到链接处出现的).
我们这里实现的用的是Sweet Titles的插件.显示效果完全由CSS控制..
先下载Sweet Ti
收藏 0赞 0分享
CSS教程:li和ul标签用法举例
LI代码的格式化:
A).运用CSS格式化列表符: ul li{
list-style-type:none;
}
B).如果你想将列表符换成图像,则: ul li{
list-style-type:none;
list-style-image: url(/blog/images/
收藏 0赞 0分享
CSS教程:CSS中的定位(position)
使用CSS来定位页面内层的位置,一直是比较难以掌握的事情,很多时候,往往被绝对定位的元素,总是以浏览器的左上角为坐标原点,此时,如果浏览器的大小改变,被定义的层就会偏离设计想要的位置,让人很挠头。
其实,要想控制好层的绝对定位,只要理解CSS中关于定位
收藏 0赞 0分享
CSS教程:盒模型(BOX Model)
如果想熟练掌握DIV和CSS的布局方法,首先要对盒模型有足够的了解。每个HTML元素都可以看作一个装了东西的盒子,盒子里面的内容到盒子的边框之间的距离即填充(padding),盒子本身有边框(border),而盒子边框外和其他盒子之间,还有边界(margin),如图1所示。
收藏 0赞 0分享
无延迟翻滚的图形与CSS混合风格按钮
在一个具有图形背景的按钮中添加CSS风格的文本,这种建立按钮的方法结合了具有CSS翻滚(CSS rollover)标记的开发速度和效率,从而有效地提高按钮外表图像的三维效果。
相比于常规的图形按钮,这些图形/CSS混合按钮可易于建立和载入,因为你只需要为空白按钮外面
收藏 0赞 0分享
css里expression实现界面对象的批量控制
用过css样式我们就知道, 可以定义一批对象的class属性来指定同一个样式来统一界面. 但如何统一同类型的对象的事件? 比如:界面有无数个 <img src="**.jpg"> 如何实现鼠标经过此图片, 图片的src变成是**_over.jpg?
收藏 0赞 0分享
CSS教程:水平对齐(text-align)
水平对齐(text-align),用以设定元素内文本的水平对齐方式。
1.语法
text-align具体参数如下:
语法:text-align:left|right|center|justify
说明:设定元素内文本的水平对齐方式。
参数:left:左
收藏 0赞 0分享
查看更多