千家信息网

组织CSS的方式有哪些

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章将为大家详细讲解有关组织CSS的方式有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。OOCSSOOCSS 意为面向对象的CSS。这种方法有两种主要 观点
千家信息网最后更新 2025年01月19日组织CSS的方式有哪些

这篇文章将为大家详细讲解有关组织CSS的方式有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

OOCSS


OOCSS 意为面向对象的CSS。这种方法有两种主要 观点:

  • 结构与设计分离

  • 容器和内容分离

使用这套结构,开发者能得到可以在不同地方使用的一般类。

在这一步,会存在两点(通常就好和坏):

  • 好: 通过重复利用减少代码量 (DRY原则)。

  • 坏: 组合使用。当你改变一个特定元素的样式, 你需要改变的很有可能不仅仅是CSS(因为大多是类都是公共的),而且还会添加新的类。

此外,这种OOCSS的方法本身并没有明确的规则,而是抽象的建议,所以这种方法在生产中的结果会有不同。

实际结果就是,这种OOCSS的思想启发了其他人创建出属于他们自己更具体的代码结构。前端学习秋秋qun: 767273102 。有任何不明白的东西随时来问我

SMACSS


SMACSS意为可扩展、模块化(Scalable and Modular Architecture)的CSS。这种方法的主要目的是减少代码量,并且使代码维护更简单。

Jonathan Snook将样式分为了5个部分:

  1. Base rules. 这些是主要的网页元素样式 - body, input, button, ul, ol等。在这部分, 我们主要使用
    HTML标签和属性选择器, 特殊的情况下使用 - 类 (例如, 你有JavaScript的样式选择);

  2. Layout rules. 这些是全局元素的样式,比如

    的尺寸等。Jonathan建议在这些元素中使用id选择器,因为这些元素在页面中不会出现超过一次。然而,这篇文章的作者认为这并不是好的做法。(在样式文件中,不管id什么时候出现,都会在其它的某个地方造成些麻烦).

  3. Modules rules.在单个页面中,块会被多次使用。对于模块的分类,并不建议使用id和标签选择器(分别为了重复使用和上下文独立性)。

  4. State rules. 在这一部分,规定了模块的不同状态和网页基础,这是唯一可以使用关键字!Important 的地方。

  5. Theme rules. 设计你可能需要更换的样式。

另外,还建议对属于某个特定分组的类设定命名空间,并为JavaScript中使用的类使用单独的命名空间。

这种方法使得编写和维护代码都更加容易,并且吸引了很多开发者。

Atomic CSS


使用Atomic CSS,为每一个可重用的属性创建一个单独的类。比如 margin-top: 1px;就可以创建一个类 mt-1,width: 200px;可以创建一个w-200。

这种风格允许通过重复声明来尽可能减少代码,并且改变模块样式也相对容易,for example, when changing a technical task.

然而,这种方法也有很大的缺点:

  • 类名都是描述性的属性名,而不是对元素本身的语义化描述,有时会使得开发复杂化。

  • 直接在HTML中显示设置。

因为这些缺点,这种方法遭到了大量批评。但是,这种方法对于大型项目而言,还是很有效的。

此外Atomic CSS也被用在不同的框架里来指明矫正元素样式,还有一些其它方法的展现层。

MCSS


MCSS是多层CSS。这种书写代码的风格建议将样式分为几个部分,称为层(layers)。

  • 底层(Zero layer or foundation)。这层代码负责重置浏览器样式(比如reset.css 和
    normalize.css);

  • 基础层(Base layer)包含网站重复使用的元素的样式:按钮、文本输入框等。

  • 项目层(Project layer)包含单独的模块和一个"上下文"--根据客户端浏览器,查看站点/应用程序的设备,用户角色等对元素的修改。

  • 修饰层(Cosmetic layer)代码是OOCSS的风格,对元素的外观做一些小的修改。建议只保留影响元素外观,但不会破坏网站布局的样式(比如颜色和不重要的缩进)。

层级之间的交互层次是很重要的:

  • 基础层(base layer)定义中性样式,不影响其他层。

  • 基础层(base layer)的元素只会影响本层的类。

  • 项目层(project layer)的元素能影响基础层和项目层。

  • 修饰层(cosmetic layer)是以描述性OOCSS类("atomic"类)的形式设计的,并且不会影响其他的CSS代码,可选择性的用于标记当中。

AMCSS


AMCSS就是"Attribute Modules for CSS(css的属性模块)"。

让我们看一个例子:

Button

这样一个类的链并不简单,所以让我通过属性来组织这些值。

结果如下:

Button

为了避免命名冲突,添加命名空间到属性上是个好主意。然后,我们的按钮就变成了下面的样子:

Button

如果你使用验证器检查代码,会发现并没有am-button这个属性,所以可以在属性名称前加上data-。

使用一个鲜为人知,作为class属性的选择器"~ =" (IE7+):该选择器选择属性值包含指定单词的元素,用空格分隔。所以,这种class~="link"的选择器类似于a.class.button这样的选择器。即使专门使用,因为class选择器也只是该属性选择器的特殊情况。

因此,CSS代码

.button {...}.button--large {...}.button--blue {...}

转换为

[am-button] {...}[am-button~="large"] {...}[am-button~="blue"] {...}

如果你觉得这样的代码不常见,也可以使用不那么激进的AMCSS形式:

FUN


FUN表示选择器的扁平结构(Flat hierarchy of selectors),功能样式(Utility styles),命名分割组件(Name-spaced components)。

每个字母后面都有特定的原则:

  • F, flat hierarchy of selectors: 建议使用类来选择元素,避免无用的串联,并且不使用id。

  • U, utility styles: 鼓励创建atomic风格的服务来解决典型的拼凑任务,比如 w100表示width:
    100%;,fr表示float: right;

  • N, name-spaced components: Ben建议添加命名空间来指定特殊的模块元素的样式。这种方法避免了类名的重叠。

一些开发者注意到使用这种原则来书写和维护代码是相当方便的;在某种程度上,作者拿出了最好的成果,并且以一种简洁的方式展示了这项技术。

这种方法对项目和代码结构还有不小要求,它只建立记录元素的首选形式和标记使用的方法。但是在小项目中,这些规则足够创建出足够高质量的代码。

关于"组织CSS的方式有哪些"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

元素 代码 样式 选择 方法 属性 建议 模块 项目 基础 结构 影响 不同 基础层 空间 篇文章 风格 开发 方式 特殊 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技培训课件 软件开发与设计工程 湖北品质软件开发设施价钱 软件开发就是码农 开展网络安全和信息化培训 数据库系统工程师的有效期 把数据放入数据库 数据库增删改查语句多表查询 博图数据库保存期限 三校生计算机网络技术试题 为什么光翼服务器一直在登录队列 java服务器是什么意思 服务器组策略安全设置 软件开发公司交多少税金 服务器共享文件夹和电脑同步 雅安网络技术参考价格 深圳创客联盟网络技术有限公司 cdn加速服务器违法吗 数据库一体机的市场规模 软件开发助理招聘信息 为什么服务器上用不了向日葵 山东济南浪潮服务器哪家服务好 山西互联网科技企业 软件开发项目的来源 安徽慧暖软件开发有限公司 三校生计算机网络技术试题 防火墙怎么防护无线网络安全的 关系型数据库系统是什么意思 如何设置是服务器更安全 软件开发外包保密协议豆丁网
0