`

css管理

css 
阅读更多

 

CSS的管理一直是个让人有点头疼的问题,没有绝对的对错,无非就是为了方便管理、修改和多人合作罢了;

网上流行的CSS管理方式讲来讲去无非也就以下几种:

1. 对于单个页面那种非常简单的,其实也可以直接把所有的样式写在一个外部文件里就行,或者直接写在页面的头部里,没有必要去纠结繁琐的CSS文件管理。

2. 读过《精通CSS:高级Web标准解决方案》那本书的人都应该对作者如何去组织、规划和维护样式表有深刻印象:多个CSS文件可以利用@import导入的页面中,好处是减少HTTP请求数,坏处是导入样式要比链接样式的速度慢,而且导入的文件有顺序的规定,顺序不当常常会出现样式没办法应用等错误,也是让人无比纠结。

而对于全部写在单个文件的,其内部最好有合理的设计结构和注释:

一般性样式:

  • 主体样式
  • reset样式
  • 链接
  • 标题

辅助样式:

  • 表单
  • 通用和错误
  • 一致的条目

页面结构:

  • 标题、页脚和导航
  • 布局
  • 其他页面结构元素

页面组件:

  • 各个页面

覆盖:

然后使用大注释块来分割每个部分

1 /* @group general styles
2 ---------------------------------------------------------------*/
3 // 而小区域可以用小块注释
4 /*nav*/

这种分割方法虽然明确,但是需要开发人员进行判断,项目很大时,这种判断是需要耗费很多时间去很分析的,好的组织和规划是需要耗时间的...

自我提示:

适当的注释可以为后期的开发有很大的帮助,例如:

1 /*字体颜色定义说明
2 @colordef #F00; 红色
3 */

也可以使用@tudo来表示某些东西需要后期修改、修复或复查,用@bugfix表示代码或特定浏览器遇到的问题,用@workaround表示并不完善的权宜之技(这些都跟JS的的相似,统称为gotcha)

1 /*@tudo 网站上线之前记得删除此规则*/
2 /*@bugfix 解决IE6的双边距问题*/
3 /*@workaround 我试图去解决这个在IE6下的XXX问题,但它似乎表现的还不够好*/

3. 另外网上也流行一种模块化css的文件分类方法:

  • reset.css // 对阅读 器的默认样式执行 重设
  • layout.css // 管理页面的布局
  • typeset.css // 图文的编排与
  • color.css // 统一管理颜色的搭配
  • print.css // 打印效果样式
  • ie.css // 把对ie的hack单独分开

或:

  • reset.css
  • header.css // 头部的所有样式
  • container.css // 除头部/底部外的中间区域样式
  • footer.css // 底部样式
  • print.css
  • ie.css

以上的分类看似合理且仅仅有条,但管理起来很麻烦,也不是每个人都可以百分百了解每个CSS文件里面的内容,所以疑问就来了:

  • 效率疑问 与最终目的。在站点 内容上面,如果改某一个区域的内容,可能要多个 CSS都改。这样一来,本来基本 的一个修改,开始变得复杂起来。并且,如果多个都改,可能会使我们忽略了某些东西,又须要 进一步调试,这样不仅肯使最终目的实现延后,还是一个效率的疑问 。
  • 调用尽可能少的CSS文件。大多楼情况下,一个站点 都是分成头部,中部和底部,并且,一般,要做新的频道/页面之类的东西,都不会变动头部和底部,而只是变动中间部分。这样一 来,所有CSS文件都要调用,因为,HTML和CSS的模块化并不一致。这样,就会导致服务器承受更多的压力。这是一个方面。另一个方面是,如果新页面中 某些元素与其他页面有冲突,我们可能要搞一大堆关于优先性选择的代码,添加 代码量。这些都不是我们想要的。这就为什么要把header.css和 footer.css分开来的原由 。
  • 多人合作上的疑问。如果我们多个人在工作,大家的分工可能是,有人完成头部的导航,有人完成底部的搜索条,有人完成中部新页面的构建。这样一来,大家都同时在改多个 文 件,并且,改的东西不同。如果要更新到服务器,就要先比较 ,再更新。(当然,现在有版本管理这样的软件。但是,同时工作的话,版本也是一个疑问 ,要相信, 或许更新永远都改不上改动 。)

4. 第四种就是采用CSS框架了,比如我最喜欢的960 GRID和YUI CSS Framework,大体原理一样:一个css reset一个font定义和一个核心的Grids网格布局文件,然后就是各种布局位置计算,然后自己就可以写页面的其他样式了

5. 使用CSS预处理器(Sass、LESS 和 Stylus)帮助简化CSS内容和组织管理。

我自己的管理组织管理方法:

之前看过的《编写高质量代码 Web前端开发修炼之道》,作者给出了一个非常通用的css组织方式:base+common+page,但其实也有很多人喜欢把base直接写在common里面,反正也是站点的几乎所有页面都调用,我用的最多的是commom(全站调用)+page(独立页面样式,名字自定义也可)两个文件的方式(也是因为后来项目的原因才慢慢喜欢上的),当然前提是全站风格统一, 可以做得很模块化,需求变动不大;common的的样式权限一定要在应用效果的情况下保持尽可能低,以方便后期需求突变时可以强行覆盖;

其实组织样式考虑因素还是有的,只是一般我比较通用以上那种:

  • 首先当然要看项目的规模和访问量。项目的规模大小是组织样式一个非常重要的参考基准,小网站多几个HTTP请求有何妨,多几个样式也不会有很大的性能变化,而像淘宝、新浪微博、腾讯QQ空间这些大项目就不同了,太多的CSS文件引入页面会有较明显的载入延迟,所以如何去尽量减少css文件的情况下做到尽可能的便于后期维护是重要的,如果有可能可以使用CDN。参考之前的方法,可以为按功能或页面区块分成多个css文件,然后根据需要利用@import导入到一个文件中,然后再引入页面中
  • 页面实现的复杂度及需求变换程度。页面的复杂程度基本上是如何组织CSS我觉得最重要的考虑因素了,风格统一的网站header和footer不会变,我们可以做成一个模块化方便调用、你可以把它写在common.css里面全站都应用,大家常用的reset也应该写在这里面,完全没必要单独写一个reset.css文件,因为所有的全站都会用到;然后最重要的就是分析页面的其他部分是不是有设计相同的部分,有的话抽离出来放到common里面,全站都可以调用,这个就是所谓的CSS组件化了

还有一个非常纠结的问题,我想做前端时最理想的是:设计师设计好所有的稿然后交给前端“一次性”全部转换为Web页面、多好啊!样式等文件一开始就可以参照设计稿进行全方位的规划组织,想怎么弄怎么弄,清晰明了;可现实就是那么骨干、尼玛有时设计稿变化大到你想吐血,还是半路穿插进来的,你会发现什么头部header和尾部footer又得重写个新的了,之前的模块话也都完全用不上了,而有时又只是一个页面而已(比如专题页),很不情愿为其模块化, 纠结啊!,所以我常常在不破坏整站的整体风格的情况下,会专门定义一个文件夹来存放这些蛋疼页面的CSS样式,我不想让他们共用全站的CSS文件,这个文件里同样有个common.css文件存放诸如css reset、base原子类供所有单独页面调用,然后每个页面会有一个page.css或style.css专门定义页面样式的,而代码冗余不冗余已经不是重点了,不管它,尽量写得简洁规范高效即可。

 

分享到:
评论

相关推荐

    html+css管理系统后台登录页面

    html+css管理系统后台登录页面,适用于网页设计登录页面的个性化设计。html+css+js网页设计、大学生网页课程设计、期末大作业、毕业设计、网页模板,DW网页成品源代码等,2000+套Web案例源码,优质文章,关注作者...

    学生信息管理系统(html + js + css)

    《学生信息管理系统:HTML+JS+CSS的综合应用》 在信息技术领域,开发一个学生信息管理系统是常见的实践项目,它能有效地帮助教育机构管理和维护大量的学生数据。本系统基于前端技术,利用HTML、CSS和JavaScript这三...

    管理页面的css样式

    本话题主要关注的是“管理页面的CSS样式”,这对于创建高效、整洁且易于维护的后台管理界面至关重要。 1. **CSS基础知识**: - **选择器**:CSS的选择器用于定位文档中的元素,如ID选择器(#id)、类选择器(....

    精通CSS与DIV资源管理及素材

    7. **CSS性能优化**:有效的CSS管理包括减少选择器的复杂性、避免使用!important、合理组织代码以及利用CSS缓存等策略,以提高页面加载速度。 在这个压缩包中,你可以期待找到各种实例,涵盖上述知识点,帮助你从...

    后台管理模版CSS+DIV

    【后台管理模版CSS+DIV】是一个用于构建高效、美观且功能丰富的后台管理界面的设计框架。这个模版集合了多种前端技术,包括CSS(层叠样式表)、DIV(HTML布局元素)、JavaScript(基础脚本语言)以及jQuery(一个轻...

    CSS和JS管理工具Brewer.js.zip

    Brewer.js 是一个工具用于简化管理 CSS 和 JS 源文件,主要功能有: 编译 coffee-script (or iced) 源码到 javascript 编译 LESS 或 Stylus 文件到 CSS 将多个 JS 或者 CSS 文件合并到单一文件并可进行压缩...

    基于HTML5/CSS3的清爽后台管理页面(二)

    此外,还可以使用CSS变量(CSS Custom Properties)来统一和管理页面的颜色方案,提高代码的可维护性。 在实际项目中,通常会结合JavaScript和前端框架如Vue.js、React.js或Angular.js来增强交互性。这些框架提供了...

    前端开源库-postcss-inject

    在传统的CSS管理中,每个组件或模块可能有自己的CSS文件,当需要在多个组件间共享样式时,通常需要手动导入或者使用link标签引用,这可能导致代码冗余或依赖关系混乱。PostCSS Inject解决了这个问题,它能够自动检测...

    最好用的css split工具,无出其右

    总的来说,CSS Satyr v1.2_生成工具作为一款强大的CSS管理工具,能帮助开发者更高效地处理背景图像,提高工作效率,同时优化网页性能。它的易用性和自动化特性,使得即使是对CSS不甚了解的用户也能轻松掌握。

    前端开源库-css-resolve-import

    总之,`css-resolve-import`是一个强大的工具,它简化了前端开发中的CSS管理,尤其是处理`@import`的复杂性。通过自动化解析和合并,它可以帮助开发者构建更加优化、高效的前端应用。对于那些处理大量CSS文件或者...

    CSS实战,很好的例子

    总之,Dreamweaver CS4结合了直观的视觉编辑和强大的CSS管理功能,为网页设计师和开发者提供了一个高效的工作环境。通过深入学习CSS实战技巧,结合Dreamweaver CS4的专业工具,任何人都能在网页设计领域取得更大的...

    一款基于fis3的cssmodules插件

    【标签】:“JavaScript开发-CSS相关”表明这个插件与JavaScript和CSS紧密相关,特别是对于使用JavaScript进行前端开发的人员来说,了解和使用这个插件有助于提升CSS管理和维护的效率。在JavaScript开发中,CSS ...

    高效-可维护-组件化的CSS

    4. 使用框架:如Vue、Angular等框架提供的内置CSS管理机制,有助于实现组件化,如Vue的 scoped 属性,限制CSS的作用域。 总结来说,高效、可维护、组件化的CSS是现代前端开发的核心原则。通过合理的设计、工具和...

    Node.js-objectify-css将CSS规则转成JavaScript样式对象的CLI工具

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它让开发者能够在服务器端使用 ...在实际项目中,结合其他前端框架和库,如 React 或 Vue,`objectify-css` 可以帮助实现更高效、更模块化的 CSS 管理。

    将CSS从块中提取为多个样式表HMR

    在现代Web开发中,Webpack是广泛使用的模块打包工具,它能够处理JavaScript、...在实际项目中,还可以结合其他Webpack插件和策略,如CSS预处理器(如Sass、Less)、CSS Tree Shaking等,进一步优化CSS管理和打包过程。

    前端开源库-get-css

    在实际项目中,可以结合其他库如`webpack`、`browserify`等构建工具,将`get-css`集成到构建流程中,以实现更复杂的CSS管理和优化策略。 需要注意的是,由于`get-css`是一个前端库,它依赖于浏览器环境提供的网络...

    gradle-css-plugin-1.8.3.zip

    总的来说,Gradle CSS Plugin 1.8.3和Hogan Compile Maven Plugin是现代Web开发中不可或缺的构建工具插件,它们分别解决了CSS管理和Hogan模板编译的问题,提升了项目的构建效率和质量。在开源项目中,选择这些经过...

    CSS压缩美化净化工具.zip

    在前端开发过程中,CSS(Cascading Style Sheets)是用于定义网页布局和样式的语言,而有效的CSS管理对于提升网站性能至关重要。"CSS压缩美化净化工具"正是一款针对这一需求设计的小型应用,旨在帮助开发者优化和...

    CSS网站布局实录 (第二版)PDF版

    8.2 Dreamweaver CS3的CSS管理 8.3 CSS代码调试 8.3.1 安装Firefox Web Developer 8.3.2 界面总览 8.3.3 主要功能 8.4 Web Accessibilty Toolbar 8.4.1 安装工具栏 8.4.2 界面与功能总览 第9章 CSS布局应用实例解析 ...

    人工智能-项目实践-信息管理系统-利用HTML+CSS3技术设计一个简单的用户信息管理系统

    利用HTML+CSS3技术设计一个简单的用户信息管理系统 二、实验内容 1.使用图像标签,创建一个使用图标工作台页面,使用标签创建图像链接。 2.使用HTML标签+CSS样式表创建提交数据用户表单页面。 3.使用HTML+CSS技术...

Global site tag (gtag.js) - Google Analytics