CSS的设计思想,比如:CSS预处理器、CSS对像(OOCSS)、SMACSS、Atomic设计和OrganicCSS等
 
 
 
 
 
 
一、CSS预处理器最重要的功能:
     1.连接:通过 @import 来引入.css文件;            网站很小时,仅用作引入重置文件与 基本通用模块(如%btn{}的定义)
     2.扩展:定义 %placeholder+@extend;          阅读:http://krasimirtsonev.com/blog/article/SASS-mixins-extends-and-placeholders-differences-use-cases
     3.配置:$变量:变量值;     存放颜色、网格宽度等,便于后期修改
     4.混合:@mixin 名称($参数:默认值,$参数2:默认值2){},再通过 @include 名称(参数值) 使用。关键在于使用参数功能,而非具体的值;
     注:不只关注所编写的 .scss 、.less 文件,还要关注生成的 .css 文件。
 
二、BEM:命名方式太复杂,暂不考虑;
     B:block; 块级
     E:element; 元素
     M:modifier; 修饰
 
三、OOCSS(CSS对象):
     1. 以对象思维,提取网页中组件的通用样式,单独定义,后面直接引入使用,便于维护。如按钮基本样式。
     2. 配合:%placeholder+@extend;
     3. 使用框架限制太大,但可以吸收部分好用的,组成自己的小微框架。
 
四、SMACSS(可伸缩与模块化CSS体系):          http://smacss.com/     https://github.com/jonathanpath/SASS-SMACSS
     1.结构:
          基本(base):     用于一个简单的选择器的基本样式,如clearfix

布局(Layout):     定义网格
          模块(Module):    一群元素相结合在一起形成的一个模块,比如说header和sidebar,不定义尺寸,只定义相互关系。
          状态(State):       元素的不同状态。如隐藏、按住,扩大等规则定义给对象
          皮肤(Skin):      更多的样式

 
五、Atomic Design(原子设计概念):不使用
六、OrganicCSS(分为了原子、分子、细胞器、更抽象):不使用
 
 
 
@include 与 @extend 比较:
 
  调用对象 CSS编译结果 定义 调用
@include @mixin定义的函数模块(可设置变量、参数、默认值) css相同样式不会合并 @mixin 名称($参数:默认值,$参数2:默认值2){} @include 名称(参数, 参数2);
@extend
.class 定义的属性模块 
%placeholders 定义的 属性模块
引用.class编译出的css可能不是想要的样式;
引用%placeholder编译出的css相同样式会合并;
.class{}
%placeholder{}
@extend .class;
@extend %placeholder;
 
 
结论:
     对有参数的,使用@mixin定义函数使用;     使用不当,会产生很多重复代码,没有参数的,就不要使用@mixin
     对仅属性的,使用%placeholder定义使用;
 
 
 
 
@mixins与%placeholders的结合:
 
实例:一个简单的百分比网格系统:测试可用
开始------------------------------------------------------
$columns: 12;
$gutter: 2em;

%grid {
    box-sizing: border-box;
    display: inline-block;
    padding: {
        left:$gutter / 2;
        right:$gutter / 2;
    }  
}

@mixin grid($width: 1){
    @extend %grid;
    width: percentage($width);
}

@for $column from 1 through $columns {
    .grid-#{$column} {
        @include grid(1 / $column);
    }
}

结束------------------------------------------------------

CSS程序思想的更多相关文章

  1. css模块化思想(一)--------命名是个技术活

    引子: 女孩子都喜欢买衣服,而我也不例外,奈何钱包太瘦,买不起高大上的定制,只能买撞衫率极高的休闲衣,不过对于我来说,我还是开心的,毕竟买衣服买的不仅是衣服,更是一种心情.在web前端的世界里,css ...

  2. css模块化思想(一)

    什么是css模块化思想?(what) 为了理解css模块化思想,我们首先了解下,什么是模块化,在百度百科上的解释是,在系统的结构中,模块是可组合.分解和更换的单元.模块化是一种 处理复杂系统分解成为更 ...

  3. CSS模块化思想-----命名是个技术活

    CSS模块化思想(一)--------命名是个技术活 引子: 女孩子都喜欢买衣服,而我也不例外,奈何钱包太瘦,买不起高大上的定制,只能买撞衫率极高的休闲衣,不过对于我来说,我还是开心的,毕竟买衣服买的 ...

  4. css分离思想

    CSS命名就应该最简单.最直接,直捣黄龙.没有HTML标签,没有层级,这些通通滚蛋,不要.为什么不要,有三大原因: 1. 限制重用 我们会使用层级(#test .test),会使用标签(ul.test ...

  5. css结构设计思想

    本文摘自博客园-予沁安的文章:结构化CSS设计思维,作为学习笔记记录一下 1.LESS.SASS等预处理器给CSS开发带来了语法的灵活和便利,其本身却没有给我们带来结构化设计思维.很少有人讨论CSS的 ...

  6. css学习入门-第一个css程序

    1.css的优势: --内容与表现分离 --网页结构统一,可以实现复用 --样式丰富 2.css的3种导入方式 2.1行内样式 <h1 style="color: red"& ...

  7. 程序思想中的冒泡法在python和1200PLC中scl高级编程中的应用

    冒泡排序:是计算机科学领域里面的一种算法. header 这个算法名字的由来是因为在执行算法的时候越小的元素会经由交换慢慢"浮"到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧 ...

  8. Web程序员必备的CSS工具

    对于web开发来说,CSS是最有效的美化页面.设置页面布局的技术.但问题是,CSS是一种标记性语言,语法结构非常的松散.不严谨.WEB程序员会经常发现自己的或别人的CSS文件里有大量的冗余代码或错误或 ...

  9. 网页三剑客之CSS

    1.CSS概述 CSS中文简称层叠样式表(英文全称:Cascading Style Sheets),用来控制页面的表现,即使页面更好看的语言. 2.CSS基本语法和页面引用 2.1 css的定义方法 ...

随机推荐

  1. hadoop安装计

    hadoop安装计 大体上按这个做就好了 http://blog.csdn.net/hitwengqi/article/details/8008203 需要修改hadoop-env.sh export ...

  2. linux C++ 获取文件绝对路径

    提供ftp服务时需要获取文件绝对路径,这里记录一下. #include <stdlib.h> #include <stdio.h> #include <limits.h& ...

  3. 混合使用Jquery Deferred和Angularjs的$timeout(转)

    原文链接:http://my.oschina.net/gejiawen0913/blog/174826 <!DOCTYPE html> <html ng-app="Demo ...

  4. JSP 处理汉字信息

    request 对象获取客户端提交的汉字字符时,会出现乱码问题,所以对含有汉字字符的信息必须进行特殊处理.将获取的字符串用 ISO-8859-1 进行编码,并将编码存放到一个字节数组中,再将这个数组转 ...

  5. mysql in 排序

    SELECT * FROM my_table WHERE id IN (30, 20, 80, 40) ORDER BY FIELD(id, 30, 20, 80, 40);

  6. 【转】TCP协议的无消息边界问题

    http://www.cnblogs.com/eping/archive/2009/12/12/1622579.html   使用TCP协议编写应用程序时,需要考虑一个问题:TCP协议是无消息边界的, ...

  7. [知识库分享系列] 三、Web(高性能Web站点建设)

    知识库分享系列: [知识库分享系列] 二..NET(ASP.NET) [知识库分享系列] 一.开篇 分享介绍此知识库之所以为 Web 系列,因为和 .NET 没有完全的关系,其中的技术和实践实用于各种 ...

  8. [译] 一、为何要推出AppCoda系列?

    声明:本文翻译自AppCoda网站的文章:Why Launching AppCoda?,作者是创建者Simon Ng.如有异议,请联系博主. 去年九月份,我在App Store上发布了自己第一个iPh ...

  9. 实例详解 DB2 排序监控和调优

    实例详解 DB2 排序监控和调优http://automationqa.com/forum.php?mod=viewthread&tid=2882&fromuid=2

  10. 我也要学iOS逆向工程--函数

    大家好,这篇我开始学习函数了.先学 C 函数,然后再 OC 的吧.OC 应该复杂点的吧. 然后看看汇编情况哦! 学习函数呢,肯定要弄清楚几个事情. 1.跳转地址. 2.返回地址 3.参数 4.函数获取 ...