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. 解决连接MySql速度慢的方法

    最近在Linux服务器上安装MySql5后,本地使用客户端连MySql速度超慢,本地程序连接也超慢.解决方法:在配置文件my.cnf的[mysqld]下加入skip-name-resolve. 原因是 ...

  2. ubuntu下安装oracle

    本来打算在 redhat 下面安装了,但是没有 redhat 的盘了,就装了个 ubuntu 桌面版,结果安装起来十分费劲,主要是之前没安装过,对 oracle 的架构和配置也不太懂. 下面记录我安装 ...

  3. php - 执行Linux命令没有报错但也没有输出

    今天我需要在同事访问我的PHP页面的时候执行一段python脚本,于是我的代码是这样写的: 1 <?php 2 function my_workjob(){ 3 $this->makeLo ...

  4. centos7 Linux 尝试使用crontab

    一.安装crontab [root@CentOS ~]# yum install vixie-cron[root@CentOS ~]# yum install crontabs 说明:vixie-cr ...

  5. 【转】drupal7请求异常,执行时间过长的解决方法

    drupal7请求错误,执行时间过长的解决办法 根据你的系统或网络设置Drupal不能读取网页,造成功能缺失.可能是web服务器配置或PHP设置引起的,可用更新.获取更新源.使用OpenID登 录或使 ...

  6. Asp.net Core WebApi 全局异常类

    通过全局异常类,所有程序中遇到的错误都会被拦截,并友好的返回结果. 1.自定义一个全局异常处理类中间件 using Microsoft.AspNetCore.Http; using Newtonsof ...

  7. Kafka - SQL 引擎分享

    1.概述 大多数情况下,我们使用 Kafka 只是作为消息处理.在有些情况下,我们需要多次读取 Kafka 集群中的数据.当然,我们可以通过调用 Kafka 的 API 来完成,但是针对不同的业务需求 ...

  8. spring 集成 Hibernate4.3.X org.hibernate.service.jta.platform.spi.JtaPlatform异常

    使用Spring3.2.4集成Hibernate4.3.5时,出现以下异常 Causedby:java.lang.ClassNotFoundException:org.hibernate.servic ...

  9. ValidationExpression="http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?" can not work

    ValidationExpression="http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?" can not work &quo ...

  10. SD卡中FAT32文件格式快速入门(图文详细介绍)【转】

    本文转自:http://blog.csdn.net/mjx91282041/article/details/8904705 说明: MBR :Master Boot Record ( 主引导记录) D ...