浏览:473 2008-06-08 17:50 来自 dudu      :

原文:Write a well structured CSS file without becoming crazy

译文:编写具有良好结构的CSS文件

这是一篇关于如何编写具有良好结构的CSS文件的帖子。我已经讲过CSS文件的代码可读性,但在讨论之后,一些更具体的要求被提出(主要是关于一些读者在管理具有大量布局元素CSS文件时的困难之处),所以我决定在这些案例中说明我自己的开发流程。

以我的经验,项目流程中如果缺乏"顺序"或一个关于项目的清晰视图是非常不利的而且你还得冒风险去添加,更改,删除class及其属性,如此在你的最终产品中得到的将只有混乱的代码和大量未使用的元素。

我建议在你直接编写CSS代码之前,先把你的网站的所有区块都在草稿里画出来。然后依照下面的简单规制优化你的工作:

             1:简洁的

             2:以"优雅的代码"为导向

             3:有条理的

简洁的
避免使用任何非必需的元素。两个<div>层就可以达到目的那就不要用六个。如果你觉得得用很复杂的CSS才能完成一个特定的设计结构,那你可能在某些地方犯了错误。请尝试用其他的方式来实现它。通常情况下事情都是很简单的,复杂的是我们自己。

以"优雅的代码"为导向
缩进你的代码以强调依赖关系的CSS元素,使用空白和注释分割不同逻辑的代码块。使用如下所示的简洁的,行内的注释:

不用写一本"书"来说明一个div ID为何叫#column-left。只要你选对名字,就足够清晰的说明了。(译注:此处取名为#column-leftqian欠妥,用#content-column会更好些,如此就不必担心因布局的变动而产生歧义,比如把当需要把#column-left 列移到右边时)

有条理的
在所有项目中均用同样的名字标示相同的区块(#logo, #navbar, #left-column, #footer...)。给不同类型的类分组并按字母循序排列CSS属性可以提高代码的可读性。一旦你在项目中发现正确的方法,就应该在所有的新项目中重复使用。这样,代码会变得越来越熟悉,越来越容易管理,而你也会写得越来越快。

在开始编码之前问问你自己:我要做什么?
在打开你最喜欢的编辑软件之前你必须先想想这个好问题。现在你只需要做的就是用铅笔和橡皮在纸上画出整个网站的主要区块:


在这一流程,你不需要在你的手写"草稿"上增加太多的细节:每个标签的大小(width,以pixel或percentage的形式),内边距, 边框和外边距就足够了。

让我们开始吧,但请先重新设置CSS的浏览器默认样式
这个操作将重新设置HTML标准标签(h1, p, ul, li...)的浏览器默认样式。最近我读了很多关于这个主题的有趣的帖子。我不知道你如何。。。但在我的项目中一般需要重新设置的是:

          body, h1, h2, h3, p, ul, li, form

没有其他的了。表格标签(<table>, <tr> and <td>)很少用到。在任何情况下,你可以通过下面的链接了解完整的CSS重设技术:

         - Yahoo! UI Library: Reset CSS
         - Eric's Archived Thoughts: Reset Reloaded

开始编写CSS代码
现在,你已经准备好写代码了。我编写的具有代表性的代码就如下所示:

好看,优雅和简洁 :)因为代码也是有一定的魅力的!

页面结构
OK,现在你可以开始设计网站的结构了。如果网站的布局草稿已经准备好,那是可以很快就完成。不管你选择那一种布局类型(流式或固定宽度),我建议你定义一个.container 类,并让它包含具有相同的宽度的CSS标签,在这种情况下,如果你想改变页面的宽度,只需修改.container 类的宽度就可以了,它所包含的元素的宽度会自动适应。


这是我的 welcome section 的一个例子(导航栏下的绿色部分):

...而下面这些CSS代码是我的左列(包含帖子的主体)和边栏的:



HTML 代码
一旦站点的主要区块已经用CSS定义完毕,你就可以开始编写HTML代码。那没有什么复杂的,只需按正确的顺序添加正确的DIV层的ID即可:

<div class="container">

<!-- Header -->
<div id="logo"></div>
<div id="navbar"></div>
<div id="welcome-section"></div>

<!-- Main Content -->
<div id="column_left">
</div>
<div id="sidebar">
</div>

<!-- Footer -->
<div id="footer"></div>

</div>


如果在浏览器上测试正常,你就可以逐步为各个区块(navigation, sidebar, footer...)添加新的具体的CSS代码,即按结构的方式完成你的CSS并整合HTML代码。缩进所有依赖于同一个类的代码:

当你不得不在你的CSS代码中寻找一个具体的标签时这点小聪明将起到意想不到的效果。


自定义类放在最后
通常,如果有些类多个区块都会用到,那我会以这样的方式把它们添加到CSS文件的末尾:


我以能很快认出其主要属性的语义名字来命名每个类

我希望这些小窍门能简化你编写和管理CSS代码的方式。

收藏 楼主
  4个月前  翔工作室--雨人      :
很有收获,谢谢
1楼 回到顶楼 
  4个月前  翔工作室--雨人      :
单个或几张页面的CSS统筹,不太麻烦!能否讲一些,关于整个网站的CSS文件,如何设计的问题。因为,我暑期开发的时候可能会遇到这样的问题!
2楼 回到顶楼 
  4个月前  周煜朝      :
1:样式表文件里面的代码混乱,随着项目的进展,样式表里面的先有代码不敢做任何改变,因为连自己也不知道改了以后会给现有项目造成什么影响。更不敢删除。因为连自己都不知道此处的样式到底什么地方用到了。

2:样式表文件体积增大,一个页面即使没有用到多数的样式,但仍然只能引用所有的样式,导致页面的加载缓慢。

3:样式表文件里面的代码,就像意大利面条(为什么一定要像意大利的面条?),或者就像中国的兰州拉面。所有的选择器类型全部混在一起。甚至出现很多上下的重复和不一致。

4:其他的一些CSS导致的问题。
_______________________________________________
出现这种问题该如何去做?且听下回分解
3楼 回到顶楼 
  4个月前  周煜朝      :
4楼 回到顶楼 
  4个月前  阳光麦田      :
都是这么说的,这个观点我举我能举的所有的东西来同意!

但是在我知道的开发过程里却不是这样的,我所认识的程序员对不同的页面用不同的css的这个问题非常不同意,而且也很是反感,

一个master导入所有的css文件,那么其他的页面就不用再次引用,

如果页面再用其他的css那么在master 中就会再添加一个css的样式表,

遇到这个问题,你会怎么来处理,是要花点时间写出几个的master来还是。。。。直接用

ps:我的习惯可能不好,可能、也许、大概不太好,希望有点用
Global.css 是整体的,
layout.css 布局部分的
link.css 链接用的
other.css .......
Style.css
5楼 回到顶楼 

注册用户登录后才能回复,登录注册
> 返回“web标准设计”


其他话题

相关内容

相关链接

1 1