首页 > 其他分享 >深入理解css 笔记(9)

深入理解css 笔记(9)

时间:2022-11-23 12:44:08浏览次数:59  
标签:样式 模块化 笔记 深入 模块 选择器 css 页面

模块化 CSS 是指把页面分割成不同的组成部分,这些组成部分可以在多种上下文中重复使用,并且互相之间没有依赖关系。最终目的是,当我们修改其中一部分 css 时,不会对其他部分产生意料之外的影响。

  开始写模块化样式之前,需要先配置好环境。每个样式表的开头都要歇一歇给整个页面使用的通用规则,模块化 CSS 也不例外。这些规则通常被称为基础样式,其他的样式是构建在这些基础样式之上的。基础样式本身不是模块化的,但它会为后面编写模块化样式打好基础。比如 box-sizing,font-family,基础样式配置完成后,很少会再修改。我们会再基础样式的稳定表现之上,构建模块化 css。

 

<style>
.message{
  padding 0.8em 1.2em;
  border-radius:0.2em;
  border:1px solid #3655559;
  color:#365559;
  background-color:#e0f0f2;
}
</style>

<div class="message">
Save Success!
</div>

  这个代码和其他css代码差不多。但是这里有很多模块化css的原则。模块的选择器由单个类型构成,这非常重要。选择器里没有其他规则来约束这些样式仅作用再页面的某个地方。比如前面跟一个#sidebar就意味着这个模块只能用在#sidebar元素内部。没有这些约束,模块就可以在任意上下文中重复使用。

  比如一个项目中出现了好几个相似的按钮:.sava-form button ,login-form button ,toolbar .button。样式表里多次出现相同的代码,尽管这并不是完全的复制。重复是为了获得一致的体验,但是随着时间的推移,不同的按钮之间还是发生了一些不一样的改变。有些按钮内边距不同,有的颜色不同。解决方法就是把按钮重构成一个可复用的模块,不受页面位置的限制。创建模块不但可以精简代码,还可以保证视觉一致性。这样看上去更专业,不会给人仓促堆砌的感觉。用户在潜意识里也会更容易相信我们的程序。

  通过定义一个以模块名称的新类名来创建一个修饰符。例如.message-success .message-error。有些喜欢用双连字符来在状态之间。这个是一个叫 BEM的css命名规范流行起来的。也有一些其他的方法。

  在模块中使用选择器例如.body h4来匹配标题元素,这么做是允许的,因为h4就是一个标题,其他例如img li也可以。但是要尽量避免使用基于通用标签类型的匹配,比如div和span.最初建立模块的时候,可能只是span做一件事,但是谁也说不准以后会不会出于其他目的再添加第二个san,后面就比较麻烦了。可能涉及到的都要改一遍。

  有时候,我们需要用一个类对元素做一件简单明确的事,比如让文字居中,让元素浮动,或者清除浮动。这样的类被称为工具类。虽然我不太用。因为一行代码换一个类。不确定是否值得。工具类一般是唯一应该使用important注释的地方。这样的话,不管哪里用到工具类,都可以生效。

标签:样式,模块化,笔记,深入,模块,选择器,css,页面
From: https://www.cnblogs.com/wlxll/p/16917907.html

相关文章

  • unity学习笔记03-渲染管线
    图形数据在GPU上经过运算处理,最后显示在显示器上的过程游戏→图形API→cpu→(DRAWCALL)交给GPU→顶点处理→图元装配→光栅化→像素处理→缓存减少DRAWCALL 增加性能O......
  • SAP笔记-SD 销售订单 收入 和 成本 对应科目的逻辑
    销售订单收入和成本对应科目的逻辑(2009-02-19)一.收入:1.      销售订单类型->单据定价过程  2.      单据定价过程->定价过程sorg:销售组织,dc......
  • SAP笔记-FI-多家客户同时收款问题
    多客户收款问题(2009-02-17) 问题:使用配置的收款凭证类型dZ,同时收多家客户款,系统提示只能选择一个客户或供应商./原因:DZ凭证类型在配置时,设定了客户/供应商检查......
  • SAP笔记-工作中心主数据-成本中心设置错误
    这两天后勤再测试时出现一个很奇怪的问题,co11n完工确认时,会出现下面的错误.百思不和其解,找配置都没有相关的东西,最终找到原因是工作中心主数据中设置的成本中心不是同一......
  • git-book笔记
    记住,在Git中任何已提交的东西几乎总是可以恢复的。甚至那些被删除的分支中的提交或使用--amend选项覆盖的提交也可以恢复(阅读数据恢复了解数据恢复)。然而,任何你......
  • CSS 实现防止按钮重复点击
    代码如下:复制直接使用body{display:grid;place-content:center;height:100vh;margin:0;gap:15px;background:#f1f1f1;user-select:none;}......
  • 系统辨识课程笔记
    第一次课现代控制理论有哪些部分组成辨识、状态估计、控制理论辨识方法主要采用什么技术数理统计的技术系统辨识的定义系统辨识是根据系统的输入/输出时间函数,确定系统行为......
  • CSS应用梳理
    1.文字溢出省略号1.1单行文字溢出:overflow:hidden;//溢出隐藏text-overflow:ellipsis;//溢出用省略号显示white-space:nowrap;......
  • Vue3学习笔记(七)—— 状态管理、Vuex、Pinia
    一、状态管理1.1、什么是状态管理?理论上来说,每一个Vue组件实例都已经在“管理”它自己的响应式状态了。我们以一个简单的计数器组件为例:<scriptsetup>import{re......
  • 08.电商终极搜索的深入优化使用(2) 自动不全
               ......