theme: qklhk-chocolate

传统的CSS书写风格是随意命名,堆叠样式,造成了混乱不堪的结果,复杂页面的样式书写通常会出现几百行甚至上千行的代码,CSS设计模式在实际应用中的横空出世拯救了样式混乱,代码行数冗余的局面。例如:BEM设计模式通过BEM的命名规范语义化了类名,ITCSS设计模式解决了CSS设计的分层架构,ACSS原子类的设计思想实现了单一变量单一原子样式,便于调用。

最近在研究关于CSS架构的设计方案,通过学习理解CSS设计模式的设计思想并结合实际项目架构了 ITCSS + BEM + ACSS 的CSS架构项目。逐渐有了一些想法,这里进行综合整理,也算是抛砖引玉吧。

项目使用的CSS设计模式简介

1、ITCSS

  • 设置 –预处理程序变量和方法(无实际CSS输出)
  • 工具 – Mixins和函数(无实际CSS输出)
  • 常规 – CSS重置,其中可能包括Eric Meyer的重置, Normalize.css或您自己的一批代码
  • 元素 –没有类的单个HTML元素选择器
  • 对象 -通常遵循OOCSS方法的页面结构类
  • 组件 –用于设置任何页面元素和所有页面元素样式的美学类(通常与对象类的结构结合使用)
  • Trumps –最重要的样式,用于覆盖三角形中的任何其他内容

2、BEM

BEM 是我的方法的基础。如果你以前从未听说过 BEM,它代表 block , element 和 modifier。当你第一次接触它时,它看起来是那么的难看。

.block { /* styles */ }
.block__element { /* styles */ }
.block--modifier { /* styles */ }

2、ACSS

ACSS使用了紧密的类名库。 这些类名通常被缩写,并与它们影响的内容分开。 在ACSS系统中,您可以知道类名的作用; 但是类名称(至少不是样式表中使用的名称)与内容类型之间没有关系,即每一个样式对应一个类,也称原子类CSS。

项目CSS设计模式实现

github(项目地址

通过ITCSS架构的分层设计思想,对样式目录以及功能进行了分层:

通过BEM命名的规范结合SassMagic,书写样式代码

SassMagic 地址

ACSS实现原子类样式,便于全局调用/复用

最后

  • 本项目结合 ITCSS + BEM + ACSS 实现最终项目CSS架构
  • SassMagic 助力BEM命名开发规范
  • 通过CSS设计模式开发的项目,样式代码简介,复用性高,整体结构清晰

通过CSS设计模式搭建自己系统的CSS架构的更多相关文章

  1. 一步步搭建物联网系统——无处不在的CSS

    无处不在的CSS 或许你觉得CSS一点儿也不重要,而事实上,如果说HTML是建筑的框架,CSS就是房子的装修.那么Javascript呢,我听到的最有趣的说法是小三--还是先让我们回到代码上来吧. C ...

  2. CSS设计模式介绍

    一. 常见CSS设计模式分析 oocss Object Oriented CSS,面向对象的CSS,旨在编写高可复用.低耦合和高扩展的CSS代码. OOCSS是以面向对象的思想去定义样式,将抽象(结构 ...

  3. CSS设计模式之三权分立模式篇

    分类: Html/CSS | 转载请注明: 出自 海玉的博客 本文地址: http://www.hicss.net/separation-of-powers-model-in-css-design-p ...

  4. CSS 设计模式一 元素

    1.background  内置 是一种CSS内置设计模式,支持在元素下显示图片 HTML <!DOCTYPE html> <html lang="en"> ...

  5. CSS设计模式之三权分立模式篇 ( 转)

    转自 海玉的博客 市面上我们常常会看到各种各样的设计模式书籍,Java设计模式.C#设计模式.Ruby设计模式等等.在众多的语言设计模式中我唯独找不到关于CSS设计模式的资料,即使在网上找到类似内容, ...

  6. css盒模型与bfc与布局与垂直水平居中与css设计模式等

    一.css盒子与布局相关 盒子内部的布局 盒子之间的布局visual formatting 脱离正常流normal flow的盒子的布局 absolute布局上下文下的布局 float布局上下文下的布 ...

  7. 全面系统讲解CSS工作应用+面试一步搞定

    [TOC] 一.课程介绍 二.HTML基础强化 html常见元素和理解 html常见元素分类 head区元素:(不会在页面上留下元素) * meta * title * style * link * ...

  8. 系统讲解CSS,前端开发最神奇的技术,新手的你一定不能错过

    前面小编带领大家重温了前端开发中最基本的HTML语言.如果你已经掌握了这门语言,那么恭喜你,可以去深入了解CSS技术了.CSS技术最主要的功能就是弥补HTML标记对在页面中显示外观的不足,对这些标记对 ...

  9. 前端基础----CSS语法、CSS四种引入方式、CSS选择器、CSS属性操作

    一.CSS语法 CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明. 例如: h1 {color:red; font-size:14px;} 二.CSS四种引入方式 1,行内式 行内式是在标 ...

随机推荐

  1. 3年经验硬抗字节Java岗,25天4轮面试终拿意向书,复述原题及经验

    这次面试字节跳动也是做了很多的准备,还好顺利拿到了offer,特分享一下这次的4面技术面真题,以及一份字节2-2师兄整理的面试手册,希望能够给一些正在面试字节或计划面试大厂的朋友提供帮助. 字节跳动技 ...

  2. Unity 协程(Coroutine)原理与用法详解

    前言: 协程在Unity中是一个很重要的概念,我们知道,在使用Unity进行游戏开发时,一般(注意是一般)不考虑多线程,那么如何处理一些在主任务之外的需求呢,Unity给我们提供了协程这种方式 为啥在 ...

  3. Java整合极光推送 ( 简单 )

    Java 整合极光推送官方文档:https://github.com/jpush/jpush-api-java-client 这里记录一下简单的使用步骤:创建一个普通的 Maven 工程然后添加依赖 ...

  4. 2021S软件工程——案例分析作业

    2021S软件工程--案例分析作业 18231169 黄思为 项目 内容 这个作业属于哪个课程 2021春季软件工程(罗杰 任建) 这个作业的要求在哪里 案例分析作业 我在这个课程的目标是 了解并熟悉 ...

  5. 906. Super Palindromes

    Let's say a positive integer is a superpalindrome if it is a palindrome, and it is also the square o ...

  6. SpringBoot + Dubbo + Zookper 整合

    经过2个小时的调试终于弄完了,过程如下, 环境: JDK1.8 .Springboot2.2.6. Windows10系统 如果不看Dubbo 管理页面的话就不用下载 Dubbo-domain了,这个 ...

  7. 【Java集合】JDK1.7和1.8 HashMap有什么区别

    JDK1.7和1.8 HashMap区别: 1.数组+链表改成了数组+链表或红黑树: 2.表的插入方式从头插法改成了尾插法,简单说就是插入时,如果数组位置上已经有元素,1.7将新元素放到数组中,原始节 ...

  8. 【转】【linux系统】nacos + confd配置nginx

    为什么要支持confd,老的应用配置管理模式是启动时读取配置文件,然后重新读取配置文件需要应用重启.一般的配置管理系统都是代码侵入性的,应用接入配置管理系统都需要使用对应的SDK来查询和监听数据的变更 ...

  9. POJ2536 二分图匹配

    题意:      有n只老鼠,m个洞,每个洞最多可以藏一只老鼠,每个老鼠的移动速度都是v,给你他们的当前坐标,和洞的坐标,突然老鹰来了,他们必须在s秒内跑到一个洞藏起来,问你最少有多少只老鼠被抓走了. ...

  10. Photoshop 第二课 工具-钢笔的使用

    钢笔的使用 钢笔→ 是一个非常实用(主要用于)但是非常难操作(会者不难哦~)的工具. 钢笔属性中有三种状态:1.路径:2.形状:3.像素.其中路径和形状是我们最常用的状态.路径是一条用来圈定需要操作的 ...