段正淳的css笔记(6)-浅谈css框架开发

个人总结了在开发css框架中的一点经验,献丑了。希望大家的讨论能使我们共同进步。:)

1、css框架

中国的互联网行业已经发展了10年,浏览器也从最早流行的NS到现在的FF3.IE7等等……前端开发工程师的职位也诞生了。近几年在web开发中,有个非常火的词——“框架”。YUI、JQuery、Prototype这些javascript框架在开发网站时,确实成为前端开发工程师的手中利器。为什么呢?因为框架是包含工具、函数库、约定,以及尝试从常用任务中抽象出可以复用的通用模块,让设计师与程序员避免重复开发。通俗地讲便是把大多数重复工作的时间给节约了。

编写css也是一样,从最初只是定义文字颜色、内容排版,到现在定义所有的表现。css框架也渐渐被重视了,因为大家都认识到:从具象的表现中抽出抽象的模块来重复使用,是减少用户下载、方便团队及个人开发最重要的手段。

2、css框架的开发顺序

a) 格式化 reset.css

格式化css的真正好处是能够快速启动工作,你可以在新的HTML文件里引入框架,不用再处理重置padding 和 margins,实现统一的排版、浏览器下的相同表现。

b) 布局 layout.css

定义页面是二栏还是三栏,是全屏还是1024×768……

一个网站的设计可能有很多种布局,但是大多数都是由几个具有复用性的布局组成,选择性的引入所需要的布局,可以很快地应用所期望的页面布局。

c) 基本样式 type.css

定义body、h1-h6、a:link-a:active、p等的字体大小和颜色。
基本样式的css引用,譬如将ul定义class为“ul-text”,用来展现相同的icon、行间距、链接色彩。
还可以像这样应用:class=”ul-text square”,li前展现的是方型的icon。

d) 表格修饰 table.css

定义table、tr、td、th、thead、tfoot、tbody、caption等标签的表现。
和基本样式一样,但是表格在现有网站的展现形式几乎都是处理数据,所以分开存放引用。譬如在table上应用table-style-1便是黑色边框的表格,table-style-2便是黄色边框的表格。

e) 表单修饰 form.css

定义fieldset、label、button、input 、select、textarea这几个标签的表现。
大多数网站的表单、按钮、输入框几乎都是一样的。之所以引入这个css,是为了便于统一在各个浏览器中的展现。默认的按钮、输入框等在各个浏览器下的展现区别很大,虽然在格式化的css中已经初步的统一,但是输入框的边框,按钮的样式都是需要在这个css中定义的。无奈的是select无法做到统一,如果考虑到用js实现的话,这个成本太大了点。

f) 打印修饰 print.css

修饰打印输出的页面。

g) 包含其他css的css

frontpage.css、list.css、detail.css、register.css等等

根据各种引用去引入相应的css。譬如list页面中没有需要表格的修饰,那就不引入table.css。以节约代码量。

3、css框架文件夹的建立

a) core 主要的
存放reset.css、layout.css、type.css、print.css

b) bud 模块
存放table.css、form.css、album.css等css

c) petal 具体应用
存放封装过的css。frontpage.css、llist.css、detail.css、register.css等css。这个文件夹存放的css都是被直接引用的。

文件夹的命名,按个人喜好啦! 我还希望用电子、质子等命名呢。嘿嘿!

4、css框架的优点

a) 提高开发效率。
b) 规范名称定义,便于维护。
c) 规范项目开发流程
d) css代码更清晰、简单。html代码更合理。

5、css框架的弊端。

a) 学习成本提高。你需要了解整个框架,需要阅读框架的文档。
b) css框架对于一个小项目等页面来说很臃肿。框架中可能有大部分你用不到的代码。
c)可能会无法帮助你的技术提高。太依赖框架,以至于很难排除bug。包括框架中本身就带的bug。
d) 选择自己需要的框架与开发框架都很痛苦。写到后面发现越来越不灵活,越来越臃肿。残念 -_-

6、开发及使用css框架中常遇到的问题。

1、页面外部引用样式过多。
譬如关于ul的margin定义,在格式化的css中会声明为0,而在基本样式的css中又可能会声明margin:5px 10px;
所以在Yslow中会出现多次定义。

2、组件复用性的考量。
譬如表单定义的css中定义了所有表单的修饰,而假定在注册这个页面中只是需要这个css的百分之三十。那是否应切割出去那不要的百分之七十?

综合以上的二个问题,个人认为解决的方式便是封装,让该有的有,不该有的没有。尽量减少http连接数和css的大小。但如果彻底是这样做的话,css的复用性又会变得很差,后期手工的封装会很痛苦。只能套用小马的一句话“具体情况,具体分析”。人生真是矛盾啊…

3、到底该不该支持em?
可见如要支持em,最大的目的是为了在浏览器中可以根据用户的分辨率大小自由缩放,对于拥有超大显示器的用户与小显示器的用户是非常有用的。可是在采集我们用户的浏览器数据后,发现分辨处于这二端的用户非常少,可想而知,为这部分的用户多花比正常开发一倍以上的时间显然是件不划算的事情,所以当初在开发tbsp的时候,我们团队就决定了不支持em。当然这是个建议,我们也希望能使用em带给用户最好的感受。

以上六点就是我和整个淘宝UED团队在日常开发中的思考与总结 ,可能您会提出一些不同的观点,没关系,给我们留留言,一起探讨吧!

时间: 2025-01-01 15:04:36

段正淳的css笔记(6)-浅谈css框架开发的相关文章

javascript学习笔记_浅谈基础语法,类型,变量_基础知识

基础语法.类型.变量 非数字值的判断方法:(因为Infinity和NaN他们不等于任何值,包括自身) 1.用x != x ,当x为NaN时才返回true; 2.用isNaN(x) ,当x为NaN或非数字值时,返回true; 3.用isFinity(x),在x不是NaN.Infinity.-Infinity时返回true; 虽然(字符串.数字.布尔值)不是对象,他们的属性是只读的,但也可以像操作对象一样来引用他们的属性和方法,原理: javascript构造一个(String.Number.Boo

阿涛:浅谈新手网站开发的注意事项

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 新手打算自己做网站,不知道从哪里入手,今天我就来谈谈我自己的看法,我自己既做过比较简单的asp开发,又做过比较难学的j2ee,下面从几个方面谈谈新手做网站要注意的一些事情. 一:你做网站的目的 如果你只是想修改淘宝的宝贝描述,或者修改一些cms的模板,那你语言上只要学学html,开发软件上学学DW就可以了,没有必要花很长的时间学asp,.ne

入门者来看:浅谈CSS和XHTML及Web标准

css|web|web标准|xhtml 这里简单介绍一下CSS和XHTML 当然也要谈到WEB标准设计 网站标准不是某一个标准,而是一系列标准的集合.网页主要由三部分组成:结构(Structure).表现(Presentation)和行为(Behavior).对应的标准也分三方面:结构化标准语言主要包括XHTML和XML,表现标准语言主要包括CSS,行为标准主要包括对象模型(如W3C DOM).ECMAScript等.这些标准大部分由W3C起草和发布,也有一些是其他标准组织制订的标准,比如ECM

css 缩写: 浅谈css代码的简化缩写

现在很多人所用的CSS代码都很冗赘,其实很多都可以简化缩写的.这次就根据自己所知道的来跟大家谈谈有关CSS代码的简化缩写问题. 1.所有CSS代码只要用一个style标记就可以了,没必要每段都加一个,简直是多余.例如: body{background:url("") repeat fixed!important;} .bodybg{background:url("") no repeat no scroll!important;} 可以简化合并为: body{bac

浅谈CSS在IE6、7、8中的差别

CSS在Internet Explorer 6, 7 和8中的差别,相信对你有所帮助. 关于浏览器的最离奇的统计结果之一就是Internet Explorer 版本6,7和8共存.截至本文,Internet Explorer各个版本总共占据了大约65%的市场份额.在网站开发社区,这个数字要小很多,统计显示大概只有40%. 这些统计中比较有趣的部分是,IE6.IE7.IE8之间的数值很接近,这防止了单个Microsoft的浏览器占居统治地位--与过去的情况相反.根据这些令人遗憾的统计结果,在为客户

网页制作知识:浅谈CSS编码与组织技巧

css|编码|技巧|网页 如何让 CSS 代码简洁而易于编写?这恐怕是许多开发者都关心的问题.我想,大概没有什么魔法,可以保证一下就把你的样式表缩小到百分之多少,但合理的 CSS 编码与组织技巧,的确能够帮助你的更有效率地写出更清晰高效的代码,自然,样式表大小的缩减还能减少下载的时间. 组织你的样式表 尽管我们有种种 CSS 的开发工具,比如 TopStyle,比如 StyleMaster,它们可以让你对当前这个样式表里面定义了哪些规则,涉及哪些 class,哪些 ID 一目了然,但这不等于说你

DIV CSS制作网页之浅谈CSS编码与组织技巧

css|编码|技巧|网页 如何让 CSS 代码简洁而易于编写?这恐怕是许多开发者都关心的问题.我想,大概没有什么魔法,可以保证一下就把你的样式表缩小到百分之多少,但合理的 CSS 编码与组织技巧,的确能够帮助你的更有效率地写出更清晰高效的代码,自然,样式表大小的缩减还能减少下载的时间. 组织你的样式表 尽管我们有种种 CSS 的开发工具,比如 TopStyle,比如 StyleMaster,它们可以让你对当前这个样式表里面定义了哪些规则,涉及哪些 class,哪些 ID 一目了然,但这不等于说你

浅谈CSS响应式图片运用中的srcset属性

  介绍 在整个网站的开发中,在管理图片上较为困难.注意,图片要在各种设备上平滑过渡显示,它们将会碰到的问题有: 适当的优化和减少图片的体积 注意不要浪费带宽(网站的成败与否加载速度是其中主要因素之一) 设备使用相应的解决方案 对于第一个问题,使用TinyPng和JPEGmini工具可以帮助减少图片的体积和优化图片. 对于第二个问题,在一些场合下我们可能要使用到强大的媒体查询.多亏了有他们,我们可以很简单的处理背景图片的问题.但是,有些地方使用的是img来显示图片,这也是我们要解决的第三个问题,

浅谈CSS中的OOCSS编程方式

  OOCSS即面向对象的CSS,这里对象指的是页面中的元素对象,与传统编程中的面向对象不太相同,比如不存在方法这种东西,硬要说的话,附加的一些class可以看作是继承或者接口之类的东西来实现对象的差异化.比如电商网站中的商品就是一个典型的对象,它们既有许多相同的部分,又有许多差异,宽高.按钮.图片.标题等基本布局都是相同的,而边距.线框.背景颜色.字号等都是差异化的.由此按照OOCSS的指导原则,我们应该写一个product class,然后为其添加一些border.theme之类的class