返回顶部
首页 > 资讯 > 前端开发 > VUE >css理论有哪些
  • 527
分享到

css理论有哪些

2024-04-02 19:04:59 527人浏览 安东尼
摘要

这篇文章主要讲解了“CSS理论有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“css理论有哪些”吧!  OOCSS、SMacSS及BEM都是有关css的

这篇文章主要讲解了“CSS理论有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“css理论有哪些”吧!

  OOCSS、SMacSS及BEM都是有关css的方法论(准确地说,其中BEM应该是一个完整的前端开发理论,不仅限于css),可作为实现优秀css架构(css architecture)的指南。

  css易于理解,但应用和维护并不简单。在各种开发情景下,css都可能成为一个问题点。因此,我们编写和组织css应认真、用心。

  OOCSS

  OOCSS (Object Oriented CSS),字面意思是面向对象的CSS,是由Nicole Sullivan提出的css理论,其主要的两个原则是:

  Separate structure and skin(分离结构和主题) Separate container and content(分离容器和内容)

  用一个例子来说明。请看下面这样的图文排列:

  本作的主角,帝国北部地方贵族施瓦泽男爵的养子,也是托尔兹士官学校特科班“Ⅶ组”的成员。

  .media{

1. <p><font size="3">  padding: 10px;</font></p>

2. <p><font size="3">  }</font></p>

3. <p><font size="3">  .media:after{</font></p>

4. <p><font size="3">  display: table;</font></p>

5. <p><font size="3">  clear: both;</font></p>

6. <p><font size="3">  content: " ";</font></p>

7. <p><font size="3">  }</font></p>

8. <p><font size="3">  .media-image-container{</font></p>

9. <p><font size="3">  float: left;</font></p>

10. <p><font size="3">  margin-right: 10px;</font></p>

11. <p><font size="3">  }</font></p>

12. <p><font size="3">  .media-image{</font></p>

13. <p><font size="3">  display: block;</font></p>

14. <p><font size="3">  }</font></p>

15. <p><font size="3">  .media-body{</font></p>

16. <p><font size="3">  overflow: hidden;</font></p>

17. <p><font size="3">  }</font></p>

18. <p><font size="3">  .media-shadow{</font></p>

19. <p><font size="3">  box-shadow: 1px 1px 3px rgba(0, 0, 0, .5);</font></p>

20. <p><font size="3">  }</font></p>


  上面这段代码用media表示了这种图文排列的页面元素。如果把构成它的html、css及javascript(如果有)看做一个整体,那就相当于这是一个元件,或者说对象(object)。它可以在站点的任何地方被重用。
  这样是如何体现OOCSS的两个原则的呢?
  Separate structure and skin
  分离结构和主题是在于将一些视觉样式效果(例如background、color)作为单独的“主题”来应用。在上面的例子中的阴影效果,没有被直接写在media的样式规则内,而是被单独写在了一个名为media-shadow的class中。因此,它成为了可选择、可拆分的主题。如果不需要对应主题,什么也不要加,如果需要,加上对应的class,就是这样的思路。
  Separate container and content
  分离容器和内容要求使页面元素不依赖于其所处位置。在上面的例子中,css的选择符都很短,无继承选择符(例如.header .media { }),所以,这个图文排列的元件,可以在任何地方使用,且会有一致的外观。
  如果需要在特定的地方让这个元件看起来不一样一些,继续为这个元件增加class,将“不一样的部分”作为可配置的选项。元件的外观仍不依赖其所处位置。

  操作指南
  可以看出,OOCSS风格的css可以描述为两点:
  增加class 不使用继承选择符
  OOCSS追求元件的复用,其class命名比较抽象,一般不体现具体内容。

  SMACSS
  SMACSS (Scalable & Modular Architecture for CSS),是由Jonathan Snook提出的css理论。其主要原则有3条:
  CateGorizing CSS Rules(为css分类) Naming Rules(命名规则) Minimizing the Depth of Applicability(最小化适配深度)
  这些原则分别是什么意思呢?
  Categorizing CSS Rules
  这一点是SMACSS的核心。SMACSS认为css有5个类别,分别是:
  Base Layout(Major Components) Module(Minor Components) State Theme
  Base Rules, 基础样式,描述的是任何场合下,页面元素的默认外观。它的定义不会用到class和ID。css reset也属于此类。
  Layout Rules, 布局样式。它和后面的Module Rules一同,描述的是页面中的各类具体元素。元素是有层次级别之分的,Layout Rules属于较高的一层,它可以作为层级较低的Module Rules元素的容器。左右分栏、栅格系统等都属于布局样式。
  Module Rules, 模块样式。它可以是一个产品列表,一个导航条。一般来说,Module Rules定义的元素放置于前面说的Layout Rules元素之内。模块是独立的,可以在各种场合重用。
  State Rules, 状态样式,描述的是任一元素在特定状态下的外观。例如,一个消息框可能有success和error两种状态,导航条中的任一项都可能有current状态。
  继续OOCSS中的例子,下面新增的让元素不显示的is-hidden就属于State Rules:
  ...

1. <p><font size="3">  复制代码</font></p>

2. <p><font size="3">  .is-hidden{</font></p>

3. <p><font size="3">  display: none;</font></p>

4. <p><font size="3">  }</font></p>


  Theme Rules, 主题样式,描述了页面主题外观,一般是指颜色、背景图。Theme Rules可以修改前面4个类别的样式,且应和前面4个类别分离开来(便于切换,也就是“换肤”)。SMACSS的Theme Rules不要求使用单独的class命名,也就是说,你可以在Module Rules中定义.mod { }然后在Theme Rules中也用.mod { }来定义需要修改的部分。

  Naming Rules
  Naming Rules是说在想class等的命名时,考虑用命名体现样式对应的类别。
  按照前面5种的划分,Layout Rules用l-或layout-这样的前缀,例如:.l-header、.l-sidebar。
  Module Rules用模块本身的命名,例如图文排列的.media、.media-image。
  State Rules用is-前缀,例如:.is-active、.is-hidden。
  Theme Rules如果作为单独class,用theme-前缀,例如.theme-a-background、.theme-a-shadow。
  Base Rules不会用到class和ID,是以标签选择符为主的样式,例如p、a,无需命名。
  命名规则不需要严格遵守,可以根据实际情况和自身喜好做其他的约定。记录自己的约定(写文档),然后遵守,就是可行的。
  Minimizing the Depth of Applicability
  字面翻译是最小化适配深度。通过一个简单的描述来说明:
  

1. <p><font size="3">  .sidebar ul h4 { }</font></p>

2. <p><font size="3">  </font></p>

3. <p><font size="3">  .sub-title { }</font></p>


  上下两端css的区别在于html和css的耦合度。可以想到,由于上面的样式规则使用了继承选择符,因此对于html的结构实际是有一定依赖的。如果把h4元素搬到另一个位置,就有可能不再具有这些样式。对应的,下面的样式规则只有一个选择符,因此不依赖于特定html结构,只要为元素添加class,就可以获得对应样式。

  当然,继承选择符是有用的,它可以减少因相同命名引发的样式冲突(常发生于多人协作开发)。但是,我们不应过度使用,在不造成样式冲突的允许范围之内,尽可能使用短的、不限定html结构的选择符。这就是SMACSS的最小化适配深度的意义。

  看起来,这一点和OOCSS的分离容器和内容的原则非常相似。

  主要目标

  SMACSS着力于实现两个主要目标:

  更语义化的html和css 降低对特定html结构的依赖 BEM

  BEM,即Block, Element, Modifier,是由Yandex(俄罗斯最著名的互联网企业)的开发团队提出的前端开发理论。BEM通过Block、Element、Modifier来描述页面。

  Block是页面中独立存在的区块,可以在不同场合下被重用。每个页面都可以看做是多个Block组成。
  
  Element是构成Block的元素,只有在对应Block内部才具有意义,是依赖于Block的存在。

  Modifier是描述Block或Element的属性或状态。同一Block或Element可以有多个Modifier。
  这三部分结合在一起,可以体现在class命名上,从而为开发者提供更友好、更有意义的css组织方式。其形式是:
  .block { }

1. <p><font size="3">  .block_modifier { }</font></p>

2. <p><font size="3">  .block__element { }</font></p>

3. <p><font size="3">  .block__element_modifier { }</font></p>


  再回到前面OOCSS的那个图文排列的例子,对应用BEM的写法的话就是:
  本作的主角,帝国北部地方贵族施瓦泽男爵的养子,也是托尔兹士官学校特科班“Ⅶ组”的成员。
  这样的写法的好处是,在class命名上以约定的形式携带了更多有用信息。在多人合作的时候,新接手这个项目的人,也可以很容易从class命名上分辨出来,哪些部分是Block,哪些是对应的Element,哪些是Modifier,并进一步推断出哪部分html可以独立使用。

  BEM是完整的前端开发理论,这里只是提到了它采用的css的class命名规则。可以看出,BEM的命名规则可以使代码更易于维护。
  这些理论真的可以应用吗?
  是的,而且有用。但是,请不要过于乐观,任一种理论都只是对解决css编写、维护问题的一种尝试,及其经验总结。就实际具体的项目来说,你可能仍然会遇到困惑。这些理论最重要的是提供了一种思路(即使它们也提供开发模式的代码库),你可能不直接应用它们,但应该通过它们认识到,在写代码之前,需要多一些思考。
  不直接编写css而是采用less、sass等预编译器,也同样需要合理的代码编写和组织方式,因为可以从编译后得到的css来分析,所以原则是相通的。

感谢各位的阅读,以上就是“css理论有哪些”的内容了,经过本文的学习后,相信大家对css理论有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: css理论有哪些

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

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

猜你喜欢
  • css理论有哪些
    这篇文章主要讲解了“css理论有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“css理论有哪些”吧!  OOCSS、SMACSS及BEM都是有关css的...
    99+
    2024-04-02
  • CSS方法论有哪些
    这篇文章主要介绍“CSS方法论有哪些”,在日常操作中,相信很多人在CSS方法论有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CSS方法论有哪些”的疑惑有所帮助!接下来,...
    99+
    2024-04-02
  • NoSQL的重要理论有哪些
    这篇文章主要介绍了NoSQL的重要理论有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。    1.CAP理论    CAP理论无疑是导致...
    99+
    2024-04-02
  • 数据库基本理论有哪些
    今天就跟大家聊聊有关数据库基本理论有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。        &nb...
    99+
    2024-04-02
  • C#远程计算机的理论知识有哪些
    这篇文章主要介绍了C#远程计算机的理论知识有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一.C#远程计算机启动的一些理论知识:C#远程计算机启动的原理是"视窗...
    99+
    2023-06-17
  • css中有哪些盒模型有哪些
    本篇文章为大家展示了css中有哪些盒模型有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。CSS盒模型主要分为两种:W3C盒模型(标准盒模型)与IE盒模型(怪异盒模型)。1、W3C盒模型(标准盒模...
    99+
    2023-06-14
  • css有哪些属性
    这篇文章主要讲解了“css有哪些属性”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“css有哪些属性”吧! css属性有:1、字体...
    99+
    2024-04-02
  • css有哪些写法
    这篇文章给大家分享的是有关css有哪些写法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 三种常用写法是:1、内联样式,语法“<标记名 styl...
    99+
    2024-04-02
  • 有哪些CSS技巧
    这篇文章主要讲解了“有哪些CSS技巧”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“有哪些CSS技巧”吧!1. @font-face一种用其他服务器上的字体的...
    99+
    2024-04-02
  • CSS问题有哪些
    本篇内容介绍了“CSS问题有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!第一问:当margin的值为...
    99+
    2024-04-02
  • CSS有哪些规范
    这篇文章主要介绍“CSS有哪些规范”,在日常操作中,相信很多人在CSS有哪些规范问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CSS有哪些规范”的疑惑有所帮助!接下来,请跟着...
    99+
    2024-04-02
  • CSS技巧有哪些
    今天就跟大家聊聊有关CSS技巧有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。各种浏览器之间的竞争的白热化意味着越来越多的人现在开始使用那些支持...
    99+
    2024-04-02
  • CSS属性有哪些
    这篇文章将为大家详细讲解有关CSS属性有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.CSS 背景属性(Background)background-color&n...
    99+
    2024-04-02
  • css工具有哪些
    这篇文章主要为大家展示了“css工具有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“css工具有哪些”这篇文章吧。CSS工具是现今网站开发人员和设计人员使用...
    99+
    2024-04-02
  • CSS伪类有哪些
    这篇“CSS伪类有哪些”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“CSS伪类有哪些”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,希望大家通过这篇文章有所收获,下面让我们一起来看看具体内容吧。c...
    99+
    2023-06-06
  • css样式有哪些
    css样式有哪些?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。css的全称是什么css的全称是Cascading Style Sheets(层叠样式表),它是一种用来表现H...
    99+
    2023-06-14
  • css代码有哪些
    css 代码由以下类型组成:选择器:指定应用 css 规则的 html 元素。属性:定义元素的视觉样式。值:指定属性的具体设置。声明块:包含属性和值,定义元素的样式。注释:用于添加注释,...
    99+
    2024-04-06
    css
  • css的框架有哪些,有哪些特点
    css 框架提供预先构建的 css 样式规则,用于快速、一致地设计网站和应用程序,节省了开发时间并确保跨浏览器一致性。流行的 css 框架包括:bootstrap:响应式,组件库丰富,易...
    99+
    2024-04-25
    css bootstrap
  • 论坛主机租用有哪些优点
    1. 稳定性:租用论坛主机可以保证稳定性,为论坛提供稳定的运行环境,避免因为服务器故障导致论坛无法访问。2. 安全性:租用论坛主机可...
    99+
    2023-06-10
    论坛主机 主机
  • web开发中分布式系统的基础理论有哪些
    这篇文章给大家介绍web开发中分布式系统的基础理论有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、分布式系统与 Zookeeper 的关系1.1 集中式服务我们先从服务部署架构...
    99+
    2024-04-02
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作