返回顶部
首页 > 资讯 > 前端开发 > VUE >CSS的OOCSS和SMACSS设计模式是什么
  • 391
分享到

CSS的OOCSS和SMACSS设计模式是什么

2024-04-02 19:04:59 391人浏览 八月长安
摘要

这篇文章主要介绍“CSS的OOCSS和SMacSS设计模式是什么”,在日常操作中,相信很多人在CSS的OOCSS和SMACSS设计模式是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望

这篇文章主要介绍“CSS的OOCSS和SMacSS设计模式是什么”,在日常操作中,相信很多人在CSS的OOCSS和SMACSS设计模式是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CSS的OOCSS和SMACSS设计模式是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

OOCSS

OOCSS 不是什么新技术,只是一种撰写 CSS 的设计模式,或者可以说是一种「道德规范」,大致上我觉得重点只有两个:

  1.     减少对 html 结构的依赖
        增加 CSS class 重复性的使用

减少对 HTML 结构的依赖
 

CSS Code复制内容到剪贴板

  1. <nav class="nav--main">   

  2.   <ul>   

  3.     <li><a>.........</a></li>   

  4.     <li><a>.........</a></li>   

  5.     <li><a>.........</a></li>   

  6.   </ul>   

  7. </nav>     

一般的导航栏写法,结构应该会像上面的 HTML 范例一样,如果要对那些 <a> 标签定义样式,CSS 的写法可能写成.nav--main ul li a {},这种写法先不管效能上的问题,可以看出来过度地依赖元素标签的结构,有可能之后 HTML 结构改变,这个 CSS 就必须跟著重构,造成维护上多余的成本。

若从这个例子来考量,原则上 <a> 都一定会接在 <li> 标签的后面,一个 <li> 只会有一个 <a>,通常不会独立存在,那就可以写成 .nav--main a {},会是比较好的写法,甚至是直接给 <a> 加上 class nav--main_item。后者是 OOCSS 所提倡的用法。

这样的写法,一来效能理论上比较好(我没办法验证),二来层次比较单纯。
增加 CSS class 的重复使用

在 OOCSS 的观念中,强调重复使用 class,而应该避免使用 id 作为 CSS 的选择器。这种想法就是像
OOP
尽量抽离重复的程式码,例如以下这个例子,这是两种按钮的 CSS 样式属性:
 

CSS Code复制内容到剪贴板

  1. .button {   

  2.   display: inline-block;   

  3.   padding: 6px 12px;   

  4.   color: hsla(0, 100%, 100%, 1);   

  5.   &.button-default { background: hsla(180, 1%, 28%, 1); }   

  6.   &.button-primary { background: hsla(208, 56%, 53%, 1); }   

  7. }   

上面的 CSS 将两种不同样式的 button,抽离出重复的部份,并且定义在同个 class
上。因此,要使用这样的样式,HTML 的写法可能长这个样子:
 

CSS Code复制内容到剪贴板

  1. <a class="button button-default">   

  2. <a class="button button-primary">  

先用 button 宣告此为一个按钮的样式,再用 button-default 或 button-primary 作为按钮底色的区别。这么做可以维护成本变得比较低,例如:想要改网站上所有按钮的大小,就只要修改 .button 的 padding 而已。
SMACSS

我对 SMACSS 的理解还不是很深入,或许把 Scalable and Modular Architecture for CSS 看完后会有更深一曾的理解。目前对 SMACSS 的概念仅限于它对 CSS 不同的业务逻辑所做的划分方式:

但我认为原本的设计不是很妥当,因此我自己做了一些改良:
Base

Base 就是设定标签元素的预设值,例如浏览器的 reset 可以写在这里,如果用的是 Compass,只要 @include global-reset 即可。这里只会对标签元素本身做设定,不会出现任何 class 或
id,但是可以有属性选择器或是伪类:
 

CSS Code复制内容到剪贴板

  1. html {}   

  2. input[type=text] {}   

  3. a:hover {}   

到此,关于“CSS的OOCSS和SMACSS设计模式是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: CSS的OOCSS和SMACSS设计模式是什么

本文链接: https://lsjlt.com/news/92692.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • CSS的OOCSS和SMACSS设计模式是什么
    这篇文章主要介绍“CSS的OOCSS和SMACSS设计模式是什么”,在日常操作中,相信很多人在CSS的OOCSS和SMACSS设计模式是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望...
    99+
    2024-04-02
  • CSS编程的OOCSS和SMACSS设计模式介绍
    本篇内容主要讲解“CSS编程的OOCSS和SMACSS设计模式介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CSS编程的OOCSS和SMACSS设计模式介绍...
    99+
    2024-04-02
  • CSS的OOCSS架构是什么
    本篇内容主要讲解“CSS的OOCSS架构是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CSS的OOCSS架构是什么”吧!面向对象编程如果你有面向对象编程经...
    99+
    2024-04-02
  • C++设计模式中的桥模式是什么
    这篇文章主要介绍了C++设计模式中的桥模式是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。单一职责模式:在软件组件的设计中,如果责任划分的不清晰,使用继承得到的结果往往是...
    99+
    2023-06-29
  • java设计模式的策略模式是什么
    这篇文章主要介绍“java设计模式的策略模式是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“java设计模式的策略模式是什么”文章能帮助大家解决问题。策略模式亦称:Strategy意图策略模式是...
    99+
    2023-07-02
  • 设计模式之什么是工厂模式
    本篇内容主要讲解“设计模式之什么是工厂模式”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“设计模式之什么是工厂模式”吧! 01 简单工厂方法简单工厂方法...
    99+
    2024-04-02
  • Java设计模式的建造者模式是什么
    这篇文章主要介绍了Java设计模式的建造者模式是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java设计模式的建造者模式是什么文章都会有所收获,下面我们一起来看看吧。1、什么是建造者模式?我们知道在软件开...
    99+
    2023-06-29
  • Python设计模式中的状态模式是什么
    这篇文章将为大家详细讲解有关Python设计模式中的状态模式是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。状态模式状态模式,当对象的内部状态发生了改变的时候,允许对象执行不同的流程。优点:封装了状态...
    99+
    2023-06-29
  • Java中什么是设计模式
    这篇文章给大家介绍Java中什么是设计模式,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。java基本数据类型有哪些Java的基本数据类型分为:1、整数类型,用来表示整数的数据类型。2、浮点类型,用来表示小数的数据类型。...
    99+
    2023-06-14
  • C# Observer设计模式是什么
    这篇文章主要讲解了“C# Observer设计模式是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C# Observer设计模式是什么”吧!我们来看一个新的范例,因为有很多相关的内容,所...
    99+
    2023-06-17
  • JavaScript中设计模式是什么
    这篇文章主要介绍了JavaScript中设计模式是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。设计模式是任何优秀软件的基础,JavaScript 也不例外,学习设计模式...
    99+
    2023-06-20
  • java设计模式中的责任链模式是什么
    本篇文章为大家展示了java设计模式中的责任链模式是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一:模式说明模式定义:使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。...
    99+
    2023-06-22
  • 什么是Thread-Per-Message设计模式
    这篇文章主要讲解了“什么是Thread-Per-Message设计模式”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“什么是Thread-Per-Message设计模式”吧!并发编程的核心是什...
    99+
    2023-06-15
  • PHP八大设计模式是什么
    这篇文章主要介绍了PHP八大设计模式是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。PHP命名空间可以更好地组织代码,与Java中的包类似。Test1.php<ph...
    99+
    2023-06-15
  • java八大设计模式是什么
    Java八大设计模式是指GOF(Gang of Four)提出的23种设计模式中的一部分,这些设计模式可以帮助开发者解决在软件设计过...
    99+
    2023-08-31
    java
  • 设计模式系列之什么是桥接模式
    这篇文章主要介绍“设计模式系列之什么是桥接模式”,在日常操作中,相信很多人在设计模式系列之什么是桥接模式问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”设计模式系列之什么是桥接...
    99+
    2024-04-02
  • 设计模式系列之什么是解释器模式
    本篇内容主要讲解“设计模式系列之什么是解释器模式”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“设计模式系列之什么是解释器模式”吧! 模式定义给分析对象...
    99+
    2024-04-02
  • JS与设计模式中什么是策略模式Strategy
    这篇文章给大家介绍JS与设计模式中什么是策略模式Strategy,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一,总体概要1,笔者浅谈策略模式,又叫算法簇模式,就是定义了不同的算法,并且之间可以互相替换,此模式让算法的...
    99+
    2023-06-17
  • JavaScript5大常用设计模式是什么
    本篇内容主要讲解“JavaScript5大常用设计模式是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript5大常用设计模式是什么”吧!设计模...
    99+
    2024-04-02
  • 工作中的设计模式门面模式是什么意思
    这篇文章主要介绍“工作中的设计模式门面模式是什么意思”,在日常操作中,相信很多人在工作中的设计模式门面模式是什么意思问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”工作中的设计...
    99+
    2024-04-02
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作