1.简单组织(见习级)

projectName
├─css
| └style.css

优点:简单,单一文件,适合一些简单项目。

缺点:过度集中,没有模块化,无法适应大型项目。

2.公共组织(见习级)

projectName
├─css
| ├─index.css
└base.css

优点:抽取公共样式,适合一些小中型项目。

缺点:重用代码低,没有模块化,无法适应大型项目。

3.页面集中组织(见习级)

projectName
├─css
| ├─about.css └index.css

优点:按页面组织,集中存放在css目录中,适合一些中小型项目。

缺点:重用代码低,没有模块化,无法适应大型项目。

4.页面分布组织(见习级)

projectName
├─page| ├─index
| | └index.css
| ├─about
| | └about.css

优点:按页面组织,分布存放在对应目录中,针对性管理页面样式,适合一些中小型项目。

缺点:重用代码低,没有模块化,无法适应大型项目。

5.分离插件(框架)与源码组织(见习级)

projectName
├─css
| ├─index.css| ├─plugins
| | └jquery.timepicker.min.css
| ├─libs
| | └bootstrap.min.css

优点:分离插件(框架),区分第三方与本项目的样式,适合一些中小型项目。

缺点:重用代码低,没有模块化,无法适应大型项目。

6.组件组织(资深级)

projectName
├─css
| ├─page
| | └index.css
| ├─layout
| | ├─desktop.css
| | └moblie.css
| ├─common
| | ├─footer.css
| | └head.css

优点:抽取组件样式,重用代码高,组件模块化,适合一些中大型项目。

缺点:引入过多的css标签,不适合小型项目,使用会过于繁琐。

7.精细组件组织(资深级)

projectName
├─css
| ├─page
| | └index.css
| ├─layout
| | ├─desktop.css
| | └moblie.css
| ├─common
| | ├─footer.css
| | ├─head.css
| | ├─tab
| | | └tab.css
| | ├─button
| | | └button.css

优点:更加细化抽取,功能组件样式, 重用代码很高,组件模块化,适合一些中大型项目。

缺点:引入过多的css标签,不适合小型项目,使用会过于繁琐。

8.预后处理组件组织(宗师级)

projectName
├─scss
| ├─vendor
| | ├─font-awesome-sass
| | | ├─font-awesome.scss
| | | ├─_animated.scss
| | | ├─_bordered-pulled.scss
| | | ├─_core.scss
| | | ├─_fixed-width.scss
| | | ├─_icons.scss
| | | ├─_larger.scss
| | | ├─_list.scss
| | | ├─_mixins.scss
| | | ├─_path.scss
| | | ├─_rotated-flipped.scss
| | | ├─_screen-reader.scss
| | | ├─_stacked.scss
| | | └_variables.scss
| ├─partials
| | ├─page
| | | └index.scss
| | ├─layout
| | | ├─desktop.scss
| | | └moblie.scss
| | ├─common
| | | ├─footer.scss
| | | ├─head.scss
| | | ├─button
| | | | └button.scss
| ├─modules
| | ├─funtion.scss
| | ├─mixins.scss
| | ├─reset.scss
| | └variables.scss

优点:更加细化抽取,功能组件样式, 重用代码很高,组件模块化,解决引入过多的css,适合一些中大型项目。

缺点:不适合小型项目,使用会过于繁琐。

PS:具体问题具体分析,合理的组织css目录有利于提高开发效率,便于版本迭代。

浅谈我所见的CSS组织风格的更多相关文章

  1. 浅谈我所见的CSS命名风格

    在两年工作中,总结一下我所见的css命名风格. 1.单一class命名 .header { width: 500px; } .item { text-indent: 20%; } 优点:简单,渲染效率 ...

  2. 浅谈搜索引擎SEO(HTML/CSS)

    SEO:搜索引擎优化(免费): SEM:搜索引擎营销(付费). 它们两者的区别是: 1.SEM高投入,SEO低投入: 2.SEM短.效益块,SEO长期投入.增长慢: 3.新广告法颁布之后SEM广告位减 ...

  3. 转:浅谈CSS在前端优化中一些值得注意的关键点

    前端优化工作中要考虑的元素多种多样,而合理地使用CSS脚本可以在很大程度上优化页面的加载性能,以下我们就来浅谈CSS在前端优化中一些值得注意的关键点: 当谈到Web的“高性能”时,很多人想到的是页面加 ...

  4. 浅谈对CSS的认识

    自从进公司也有2个多月了,相信和我一批进来的小伙伴们都收获了很多东西,这个是在学校所学不到的,也让成长了很多.作为新人的我,从认为CSS是个很简单的东西,到现在觉得CSS中水很深,感觉学了很多的CSS ...

  5. 浅谈Normalize.css

    浅谈Normalize.css 一.总结 1.Normalize.css:它在默认的HTML元素样式上提供了跨浏览器的高度一致性,花了几百个小时来努力研究不同浏览器的默认样式的差异. 2.优于rese ...

  6. 【css】浅谈BFC

    定义: 块格式化上下文(Block Formatting Context,BFC) 是Web页面的可视化CSS渲染的一部分,是块盒子的布局过程发生的区域,也是浮动元素与其他元素交互的区域. BFC的布 ...

  7. CSS属性中的display属性浅谈;

    首先我们要知道什么是块级元素和行内元素有什么区别: 承接上篇文章:(浅谈HTML和body标签) 块级元素:浏览器解析为独占一行的元素(例如:div.table.ul等.),浏览器会在该元素的前后显示 ...

  8. HTTP协议漫谈 C#实现图(Graph) C#实现二叉查找树 浅谈进程同步和互斥的概念 C#实现平衡多路查找树(B树)

    HTTP协议漫谈   简介 园子里已经有不少介绍HTTP的的好文章.对HTTP的一些细节介绍的比较好,所以本篇文章不会对HTTP的细节进行深究,而是从够高和更结构化的角度将HTTP协议的元素进行分类讲 ...

  9. 浅谈angular2+ionic2

    浅谈angular2+ionic2   前言: 不要用angular的语法去写angular2,有人说二者就像Java和JavaScript的区别.   1. 项目所用:angular2+ionic2 ...

随机推荐

  1. C#问题记录-CallbackOnCollectedDelegate

    做项目的时候遇到了这个问题: 检测到:CallbackOnCollectedDelegate 对“xx.HookProc::Invoke”类型的已垃圾回收委托进行了回调.这可能会导致应用程序崩溃.损坏 ...

  2. C#之linq

    本文根据30分钟LINQ教程学习作的笔记. 1.Guid.Empty Guid 结构: 表示全局唯一标识符 (GUID).Empty字段:Guid 结构的只读实例,其值均为零.用来设置初始值.   G ...

  3. LeetCode Minimum Depth of Binary Tree 找最小深度(返回最小深度)

    题意:找到离根结点最近的叶子结点的那一层(设同一层上的结点与根结点的距离相等),返回它所在的层数. 方法有: 1.递归深度搜索 2.层次搜索 方法一:递归(无优化) /** * Definition ...

  4. c++树的表示方法

    c++树的节点的表示方法: typedef struct Node *Tree; struct Node { int data; Node *left; Node *right; int flag; ...

  5. git版本管理工具 标签(Tag) / 版本回退 / 分支的简单使用

    a.标签 标签,可以使用这个功能来标记发布结点. 举个例子, 假如我们的项目版本目前是1.2版本, 上级要求这个版本要在半个月后再进行上传至Appstore, 并要求我们未来的半个月内,去写1.3版本 ...

  6. EOS签名R值过大导致报错"is_canonical( c ): signature is not canonical"

    简要 EOS中规定签名的R和S必须同时小于N/2才是合法的签名. 详细 EOS签名交易相对BTC和ETH来说,对签名的要求更加严格了. BTC中bip62规定了((Low S values in si ...

  7. JS事件阻止冒泡的写法

    $("body").on("click", "#id", function (ev) { ev = ev || event;要写的逻辑代码 ...

  8. 2018.2.3 Centos 的vim好看的主题配置及JDK的安装配置

    这里用的是Centos7云服务器的系统 第一步登录 centos7 系统: 通过查看命令 rpm -qa | grep vi 第二步:检测是否已经安装过Vim: 输入命令:rpm -qa|grep v ...

  9. nodejs 爬虫

    参考了各位大大的,然后自己写了个爬虫 用到的modules:utils.js     ---    moment module_url.js var http = require("http ...

  10. JS控制台的使用

    1.快捷键F12可直接进入控制台(或者单机右键->检查)用于bug调试 2.控制台如图: Elements:表示所有的js元素 Console:常用的有如下几个功能: ①console.log: ...