每个人都可以编写CSS代码,甚至你现在已经让它为你的项目工作了。我在博客中也一直与大家讨论,学习CSS编码与CSS技巧。但是CSS还 可以更好吗?开始用这5个Tips改进你的CSS吧!

一、关于 CSS重置

首先,很认真的告诉你,总是要重置某些分类。无 论你是使用?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)你认为单选按钮会发生什么变 化?表单元素有时能够做些时髦的事情,所以最有效的方式就是将他们独立。

二、 CSS属性的排序

一个小的测试

这个例子就是要让你思考如何更快的找到右边距属性?

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,将帮助你节省花费在寻找一个特殊属性的时间。

我知道一些人用这样的方法去组织代码,其他人又用另一种方法去组织,但是在我的公司, 我们协商一致做出决定,所有的代码都将按照字母排序来组织。通过这样组织代码与其他人协同工作一定是有帮助的。当我碰到属性没有按照字母排序的层叠样式表 我每一次都会退缩。

三、CSS样式的组织

你应该组织你的样式表以致相关的内容靠在一起,更简单的找到想要的。使用更有效的注 解。举个例子,这是我如何构造我的层叠样式表:

/*****Reset*****/

移除元素的填充(padding)和边距(margin)。

/*****Basic?Elements*****/

定义基本元素的样式:?body,?h1-h6,?ul,?ol,?a,?p,?等.

/*****Generic?Classes*****/

定义简单的风格,好像浮动的某一侧,?移除元素的下边距,?等当然,它们大部分都与我们希望的语义 不相关,但是它们是高效处理代码所必须的。

/*****Basic?Layout*****/

定义基本的模板:?header,?footer等.?帮助定义网页布局的基本元素

/*****Header*****/

定义所有Hearder元素

/*****Content*****/

定义所有内容框内的元素

/*****Footer*****/

定义所有Footer的元素

/*****Etc*****/

定义其他的选择器。通过注解和归类相似元素的分组,将更快的找到你想要的。

四、保持一致性

无论你决定使 用什么方式去编写代码,保持一致。我已经对全部放在1行VS多行的CSS编写编写方式的争论感到乏味和疲倦。这是不需要争辩的。每个人都有自己的观点,所 以选择一种你喜欢的工作方式,并在所有的样式表中保持一致。

就我个人而言,我 采取一行。

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;?}

所以找到你喜欢的工作方式然后保持一致。

五、从正确的地方开始

在完成标记语言之前不要去尝试靠近你的样式表。

当我准备分割一张网页的时候,创建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是无价值的

写出完美CSS代码的5个重要方面相关推荐

  1. 如何写出健壮的代码?

    简介:关于代码的健壮性,其重要性不言而喻.那么如何才能写出健壮的代码?阿里文娱技术专家长统将从防御式编程.如何正确使用异常和 DRY 原则等三个方面,并结合代码实例,分享自己的看法心得,希望对同学们有 ...

  2. 你竟然写出这样的代码

    上周开会时,跟同事在讨论,什么是好的代码. 什么是好的代码,怎么定义好的代码. 往简单了说,自己刚写的代码都是好的代码,别人写的都是垃圾.往复杂了说,高内聚,低耦合,OCP.SRP.ISP,各种概念能 ...

  3. 如何写出漂亮的代码:七个法则

    如何写出漂亮的代码:七个法则. 首先我想说明我本文阐述的是纯粹从美学的角度来写出代码,而非技术.逻辑等.以下为写出漂亮代码的七种方法: 1, 尽快结束 if语句 例如下面这个JavaScript语句, ...

  4. 怎样写出无法维护的代码

    每次写代码的时候,我都尽量写出一个尽可能方便其他人看得懂的代码,没办法,很多时候维护也是我自己,活着小的看不懂,还是我自己出手.但今天我想反其道而行之,怎样才能写出一份无法维护的代码. 原文在这里,原 ...

  5. python用什么软件编程1001python用什么软件编程-怎样才能写出 Pythonic 的代码 #P1001#...

    L = [ i*i fori inrange(5) ] forindex, data inenumerate(L, 1):print(index, ':', data) 去除 import 语句和列表 ...

  6. python好学吗1001python好学吗-怎样才能写出 Pythonic 的代码 #P1001#

    L = [ i*i fori inrange(5) ] forindex, data inenumerate(L, 1):print(index, ':', data) 去除 import 语句和列表 ...

  7. 想要写出好味道的代码,你需要养成这些好习惯!

    无论做什么行业,良好的习惯会让我们受益终生.它就如我们的指南针一样,指引着我们的行动,从而走向成功. 养成良好的习惯,会让我们的工作更加顺利,生活也会变的更加清晰. 当我们久而久之习惯了做这些事情的时 ...

  8. python open方法1001python open方法_怎样才能写出 Pythonic 的代码 #P1001#

    L = [ i*i fori inrange(5) ] forindex, data inenumerate(L, 1):print(index, ':', data) 去除 import 语句和列表 ...

  9. python发音1001python发音-怎样才能写出 Pythonic 的代码 #P1001#

    L = [ i*i fori inrange(5) ] forindex, data inenumerate(L, 1):print(index, ':', data) 去除 import 语句和列表 ...

最新文章

  1. 如何利用Partitioner将消息路由到分区?
  2. 如何让squid实现动态缓存
  3. blob 图片_《你不知道的 Blob》番外篇
  4. 淘宝内部分享:MySQL MariaDB性能优化
  5. myeclipse使用太卡问题
  6. hadoop-1.1.2 在centos环境下的部署
  7. boost::binary_search相关的测试程序
  8. 【STM32】光敏传感器示例
  9. python手机自动化截图_python UI自动化截图对比
  10. java程序包不存在_idea Error:(3, 32) java: 程序包***不存在的问题
  11. Java web 应用全局变量_将properties文件的配置设置为整个Web应用的全局变量。
  12. 春日 [宋] 王安石
  13. 洛谷P3812 【模板】线性基
  14. EFK6.3+kafka+logstash日志分析平台集群
  15. 魅族计算机软件不见了,非常全面的魅族手机常见故障原因及解决办法
  16. 设计配色的基本知识以及原理
  17. C++天天练——两点间的距离
  18. 采用全球面螺旋线的 光纤陀螺仪
  19. 华容道 java_Java-华容道
  20. 蚁群算法(ACO)求解路径规划

热门文章

  1. Java基本语法(7)--赋值运算符及其扩展
  2. hiti打印机android驱动,HiTi 打印机 驱动程序下载——更新 HiTi 软件
  3. java linkedlist 用法_Java LinkedList addLast()用法及代码示例
  4. 华硕台式机安装linux进不去系统,[已解决]求助,无法进入系统
  5. python 从入门到实践_Python编程从入门到实践日记Day15
  6. [SHOI2008]cactus仙人掌图
  7. NYOJ90 整数划分(经典递归和dp)
  8. uva 1394poj 3517
  9. 使用select一个表更新另一个表(批量更新)
  10. 删除Windows Service