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+js网页设计、大学生网页课程设计、期末大作业、毕业设计、网页模板,DW网页成品源代码等,2000+套Web案例源码,优质文章,关注作者...
《学生信息管理系统:HTML+JS+CSS的综合应用》 在信息技术领域,开发一个学生信息管理系统是常见的实践项目,它能有效地帮助教育机构管理和维护大量的学生数据。本系统基于前端技术,利用HTML、CSS和JavaScript这三...
本话题主要关注的是“管理页面的CSS样式”,这对于创建高效、整洁且易于维护的后台管理界面至关重要。 1. **CSS基础知识**: - **选择器**:CSS的选择器用于定位文档中的元素,如ID选择器(#id)、类选择器(....
7. **CSS性能优化**:有效的CSS管理包括减少选择器的复杂性、避免使用!important、合理组织代码以及利用CSS缓存等策略,以提高页面加载速度。 在这个压缩包中,你可以期待找到各种实例,涵盖上述知识点,帮助你从...
【后台管理模版CSS+DIV】是一个用于构建高效、美观且功能丰富的后台管理界面的设计框架。这个模版集合了多种前端技术,包括CSS(层叠样式表)、DIV(HTML布局元素)、JavaScript(基础脚本语言)以及jQuery(一个轻...
Brewer.js 是一个工具用于简化管理 CSS 和 JS 源文件,主要功能有: 编译 coffee-script (or iced) 源码到 javascript 编译 LESS 或 Stylus 文件到 CSS 将多个 JS 或者 CSS 文件合并到单一文件并可进行压缩...
此外,还可以使用CSS变量(CSS Custom Properties)来统一和管理页面的颜色方案,提高代码的可维护性。 在实际项目中,通常会结合JavaScript和前端框架如Vue.js、React.js或Angular.js来增强交互性。这些框架提供了...
在传统的CSS管理中,每个组件或模块可能有自己的CSS文件,当需要在多个组件间共享样式时,通常需要手动导入或者使用link标签引用,这可能导致代码冗余或依赖关系混乱。PostCSS Inject解决了这个问题,它能够自动检测...
总的来说,CSS Satyr v1.2_生成工具作为一款强大的CSS管理工具,能帮助开发者更高效地处理背景图像,提高工作效率,同时优化网页性能。它的易用性和自动化特性,使得即使是对CSS不甚了解的用户也能轻松掌握。
总之,`css-resolve-import`是一个强大的工具,它简化了前端开发中的CSS管理,尤其是处理`@import`的复杂性。通过自动化解析和合并,它可以帮助开发者构建更加优化、高效的前端应用。对于那些处理大量CSS文件或者...
总之,Dreamweaver CS4结合了直观的视觉编辑和强大的CSS管理功能,为网页设计师和开发者提供了一个高效的工作环境。通过深入学习CSS实战技巧,结合Dreamweaver CS4的专业工具,任何人都能在网页设计领域取得更大的...
【标签】:“JavaScript开发-CSS相关”表明这个插件与JavaScript和CSS紧密相关,特别是对于使用JavaScript进行前端开发的人员来说,了解和使用这个插件有助于提升CSS管理和维护的效率。在JavaScript开发中,CSS ...
4. 使用框架:如Vue、Angular等框架提供的内置CSS管理机制,有助于实现组件化,如Vue的 scoped 属性,限制CSS的作用域。 总结来说,高效、可维护、组件化的CSS是现代前端开发的核心原则。通过合理的设计、工具和...
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它让开发者能够在服务器端使用 ...在实际项目中,结合其他前端框架和库,如 React 或 Vue,`objectify-css` 可以帮助实现更高效、更模块化的 CSS 管理。
在现代Web开发中,Webpack是广泛使用的模块打包工具,它能够处理JavaScript、...在实际项目中,还可以结合其他Webpack插件和策略,如CSS预处理器(如Sass、Less)、CSS Tree Shaking等,进一步优化CSS管理和打包过程。
在实际项目中,可以结合其他库如`webpack`、`browserify`等构建工具,将`get-css`集成到构建流程中,以实现更复杂的CSS管理和优化策略。 需要注意的是,由于`get-css`是一个前端库,它依赖于浏览器环境提供的网络...
总的来说,Gradle CSS Plugin 1.8.3和Hogan Compile Maven Plugin是现代Web开发中不可或缺的构建工具插件,它们分别解决了CSS管理和Hogan模板编译的问题,提升了项目的构建效率和质量。在开源项目中,选择这些经过...
在前端开发过程中,CSS(Cascading Style Sheets)是用于定义网页布局和样式的语言,而有效的CSS管理对于提升网站性能至关重要。"CSS压缩美化净化工具"正是一款针对这一需求设计的小型应用,旨在帮助开发者优化和...
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技术设计一个简单的用户信息管理系统 二、实验内容 1.使用图像标签,创建一个使用图标工作台页面,使用标签创建图像链接。 2.使用HTML标签+CSS样式表创建提交数据用户表单页面。 3.使用HTML+CSS技术...