创建高效CSS代码的五个好习惯
1.重置
首先,很认真的告诉你,总是要重置某些分类。无论你是使用 Eric Meyer Reset、YUI Reset或者你自己编写的重置代码,只要使用就对了。
它能很简单的移除所有元素的填充(padding)和边距(margin):
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 Reset和YUI Reset都是非常强大的,但是对于我而言,它们走的太远了。我觉得你最终需要重置一切,然后重新定义所有元素的属性。这就是为什么Eric Meyer推荐更有效的使用(重置样式表),而你不要只是使用他的重置样式表,将它拖放到你的项目中。调整它(的重置样式表),建立属于自己的重置样式 表。
噢,请停止使用:
* { margin: 0; padding: 0; }
花更多的时间去制作它,当你移除了填充(padding)你认为单选按钮会发生什么变化?表单元素有时能够做些时髦的事情,所以最有效的方式就是将他们独立。
2.排序
一个小的测试
这个例子就是要让你思考如何更快的找到右边距属性?
Example#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;
}
Example#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;
}
你不能告诉我Example#2不能更快的找到右边距属性。根据字母排序你的元素属性。一致的创建你的CSS,将帮助你节省花费在寻找一个特殊属性 的时间。
我知道一些人用这样的方法去组织代码,其他人又用另一种方法去组织,但是在我的公司,我们协商一致做出决定,所有的代码都将按照字母排序来组织。通 过这样组织代码与其他人协同工作一定是有帮助的。当我碰到属性没有按照字母排序的层叠样式表我每一次都会退缩。
3.组织
你应该组织你的样式表以致相关的内容靠在一起,更简单的找到想要的。使用更有效的注解。举个例子,这是我如何构造我的层叠样式表:
/*****Reset*****/ 移除元素的填充(padding)和边距(margin)。 /*****Basic Elements*****/ 定义基本元素的样式: body, h1-h6, ul, ol, a, p, 等. /*****Generic Classes*****/ 定义简单的风格,好像浮动的某一侧, 移除元素的下边距, 等当然,它们大部分都与我们希望的语义不相关,但是它们是高效处理代码所必须的。 /*****Basic Layout*****/ 定义基本的模板: header, footer等. 帮助定义网页布局的基本元素 /*****Header*****/ 定义所有Hearder元素 /*****Content*****/ 定义所有内容框内的元素 /*****Footer*****/ 定义所有Footer的元素 /*****Etc*****/ 定义其他的选择器。通过注解和归类相似元素的分组,将更快的找到你想要的。
4.一致性
无论你决定使用什么方式去编写代码,保持一致。我已经对全部放在1行VS多行的CSS编写编写方式的争论感到乏味和疲倦。这是不需要争辩的。每个人 都有自己的观点,所以选择一种你喜欢的工作方式,并在所有的样式表中保持一致。
就我个人而言,我将使用两者结合的方式。如果一个选择器超过了3个属性,我将截断它采用多行的方式编写。
div#header { float: left; width: 100%; }
div#header div.column {
border-right: 1px solid #ccc;
float: rightright;
margin-right: 50px;
padding: 10px;
width: 300px;
}
div#header h1 { float: left; position: relative; width: 250px; }
所以找到你喜欢的工作方式然后保持一致。
5.从正确的地方开始
在完成标记语言之前不要去尝试靠近你的样式表。
当我准备分割一张网页的时候,创建CSS文件之前,我需要预览并且标记body开标签到body的闭合标签之间的所有文档。我不会增加额外的DIV ,ID,或者类选择器。我将会添加一些一般的DIV,就好像hearder、content、footer.因为我知道这些东西是现实存在的。
通过先标记文档,你将不会碰到本已注定的divities1和classitis2麻烦!
/*You only need to add in that stuff once you have begun to write the CSS and realize that you are going to need another hook to accomplish what you are trying to achieve.*/(原文未译)。
利用CSS子选择器指定子元素;不要只是机械的给元素添加类或者ID选择器。记住:没有一个良好的格式化文档(或者标记结 构)CSS是无价值的。
- 栏目搜索>>分类导航
-
Flash幻灯
jQuery幻灯
JS幻灯
Flash相册
jQuery相册
图片特效
导航菜单
广告代码
在线客服
表单按钮
其它特效
-
HTML
CSS
JavaScript
Dreamweaver
Fireworks
设计分享
-
建站教程
网站运营
实用工具
网页模板
网页素材
- CSS酷站 网上购物 设计团队 设计博客
- 教程排行榜
- 21个令人惊叹的CSS技术(案例)展示
- 看这些用CSS3绘制的图标,你震撼了吗
- HTML5的Video标签详细说明手册
- 如何使一个DIV层居中于浏览器中?
- 加一段代码让IE6支持hover伪类效果
- IE PNG Fix—让IE6完美支持PNG透明图片的插件
- CSS Sprite(CSS精灵)的优点和使用方法
- 最新的IE6、IE7和IE8的CSS BUG汇总列表
- 深入理解CSS的inherit与auto之间区别
- 用浮动清除LI元素在IE6中底部3像素的BUG
- CSS3教程:17种用CSS实现的很酷炫的立体网...
- 解决IE6下PNG图片透明的最佳方法
- IE的几个最常见BUG及解决方案
- DIV+CSS布局两列右列宽度自适应布局的不同...
- CSS样式的postion属性absolute和fixed的区别
- CSS教程:用相对定位实现简单的图片边框阴...
- 下载排行榜
- 基于jQuery的超炫酷的3D切换JS幻灯焦点图特效代码
- 半透明立体质感的宽屏flash+xml焦点幻灯代码
- 简洁效果多图切换flash幻灯焦点图代码
- 带标题和数字导航的JS焦点幻灯特效代码
- 适合摄影网站超漂亮的宽屏flash+xml幻灯轮换代码
- 31款简单实用的CSS+JS下拉菜单脚本
- 3D立体效果金字塔环形旋转的flash+xml相册代码
- 基于jQuery实现的瀑布流布局列表特效代码
- 透明质感上下滑动带小图预览5屏JS焦点图幻...
- 超酷的3D摩天轮flash+xml相册幻灯图片代码
- 能沿多个方向滑动切换的jquery幻灯代码
- 自带多种幻灯效果支持缩略图导航的jquery画...
- 可改图片尺寸和张数的flash幻灯轮换代码
- 很好看的带缓冲效果CSS下拉菜单导航代码
- 基于jquery很有趣的360度全景图片预览特效
- 6屏幻灯上下滑动式带缩略图和文字介绍的fla...
