css的模块化方案可能和js的一样多,下面简单介绍几种主要的模块方案。

oocss

面对对象的规则,主要的原则是两种:分离结构和外观,分离容器和内容。

名词解释

  • 分离结构和外观:增加可重复的设计单元,同时去推进产品和ui对这方面的思考,比如下面的css使用时对象模式的命名和模块化规则。
  • 分离容器和内容:指的是样式的使用不以元素位置唯一匹配,在任何位置你都可以使用这个样式,如果你不适用这个样式,会保持默认的样式。

实例

// dom结构
<div class="toogle simple">
  <div class="toogle-control open">
    <div class="toogle-tittle">标题</div>
  </div>
  <div class="toogle-details "></div>
</div>
// 模块的标记 唯一标识
.toggle{
}
// 皮肤样式的写法,如果基本结构是一样的,你可以用complex的一个辅助样式
.toggle.simple{
}
// 是否做嵌套写法 相信很多预处理器的部分会支持嵌套 然后很多人会这样写,不被推荐的
.toogle{
 .toogle-control{
 }
 .toogle-details{
 }
}
// 其实你会这样组织么 不是很建议 这样会降低查询效率 如果能确认唯一性的时候 其实直接写子即可
.toogle{}
.toogle-control{}
.toogle-details{}

smacss

sma和oocss有很多类似之处,但区分的地方有很多,主要是对样式的分类。分别是:基础、布局、模块、状态、主题

基础

可以适用于任何位置,我也称全局样式

布局

主要是用来实现不同的特色布局,提高布局的复用率,

模块

设计中的模块化,可重复使用的一个单元,一般是dom+css的耦合绑定。

状态

描述在特定状态下的布局或者模块的特殊化表现,这里我觉得要推荐下《css禅意花园》,在dom结构不变的情况下,可以通过css的皮肤化实现样式的改版。

主题

与状态相比更加定制的是,我们会针对有些特殊的模块,进行主题的设置,包括一系列的颜色、尺寸、交互等进行重度设计,参数化设计。

案例

// dom结构
<div class="toogle toogle-simple">
  <div class="toogle-control is-active">
    <div class="toogle-tittle">标题</div>
  </div>
  <div class="toogle-details "></div>
</div>

与oocss相比,其实大部分设计思路是一样的,以一个类作为css的作用域(作用域就是两个限制,1 不符合场景时限制禁止使用 2 符合场景时要正确的使用),另外的区别就是针对皮肤和状态的不同书写规则。

bem

bem就是块、元素、修饰符的思维去写样式。它不涉及具体的css结构,只是建议你如何命名css.

案例

// dom结构
<div class="toogle toogle--simple">
  <div class="toogle_control toogle_control--active">
    <div class="toogle_tittle">标题</div>
  </div>
  <div class="toogle_details "></div>
</div>

解释

  • 块级:所属组件的名称
  • 元素:元素在组件里的名称
  • 修饰符:任何与元素修饰相关的类

这种命名方式的缺点,样式名会很长,但实际上在smacss以及oocss中都会一定程度的使用,命名很语义化,在不清楚模块时,我们可以根据样式名得出对应的结构可能是如何的。

选择合适的方案

无论哪种方案,关键是哪种是最合适团队的,我们目前的方式是:bem和smacss集合的方式。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

标签:
css,模块化

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
评论“css模块化方案”
暂无“css模块化方案”评论...

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。