前言
在项目开发中,由于每个人的代码习惯不同,编写出来的css代码不够结构化,整洁度和语义化欠缺。BEM CSS和OOCSS的思想大家在日常编码中一定有所用到,只是没有系统的了解和完全规范的使用。
BEM(Block, Element, Modifier) CSS 介绍
BEM是一种 前端命名规范 ,顾名思议就是将页面拆分成每一个富有语义的块,块和块可以嵌套,用 连接符 代表各模块之间的关系以及元素状态,生成一种模块化、可复用、高可维护性和结构化的CSS代码。
block
element
modifier(修饰语)
独立且有意义的实体, e.g. header , container , menu , checkbox , etc.
Block的一部分且没有独立的意义, header title , menu item , list item , etc.
Blocks或Elements的一种标志,可以用它改变其表现形式、行为、状态 disabled , checked , fixed
命名规则
通过双下划线__连接后代block或者element ,用双连字符--连接修饰语。
我们完全可以通过css还原出html代码结构
结论
程序员最大的困难是什么==>起名,日常开发中我们也遇到自己的样式被其他人覆盖了,大部分原因出在命名冲突,BEM恰恰解决了这一痛点,我们只需要外层样式名是一个有意义且独立唯一,他的后代就可以放心的用content,title等连接。(妈妈再也不用担心我不会起名了)
优点:结构清晰,语义化。
缺点:如果html结构嵌套比较深会导致类名比较长。
OOCSS(Object Oriented CSS) 介绍
OOCSS并不是一种约定的命名规范,是一种面向对象的思想,面向对象我们并不陌生,将模块抽象成对象,其核心就是用最简单的方式编写最整洁,最于净的CSS代码,从而使代码更具重用性,可维护性和可扩展性。
核心思想:
- 减少对 HTML 结构的依赖
- 增加 CSS class 重用
原则
减少对 HTML 结构的依赖
一般的导航栏写法,如果要对那些 <a>
标签定义样式,CSS 的写法可能写成 .nav__main ul li a {}
,这种写法先不管效能上的问题,可以看出来过度地依赖元素标签的结构,有可能之后 HTML 结构改变,这个 CSS 就必须跟著重构,造成维护上多余的成本,OOCSS提倡给a标签加上class .nav__main__item
。
增加 CSS class 重复性的使用
在使用OOCSS之前我们写一个样式可能是这样的,这样写的弊端是随处可见的重复代码,维护起来特别麻烦。
我们可以通过分析抽象出他们共有的样式,因此提出了一个可重用的字体样式。
结论
OOCSS最重要的是从项目的页面中分析抽象出“对象”组件,并给这些对象创建CSS规则进行完善,然后无论是在项目中新建页面还是在模块中添加元素,只须重写少量的甚至不写任何样式。
BEM和OOCSS的结合
我们开发一个显示物品重量组件,我们平常写的代码可能是这样的。
看起来没什么毛病,但是无论是可维护性,简洁度都非常的差。如果我们使用BEM和OCCSS我们可以将我们的代码变成这样。
相对于前种方案,命名比较冗长,但是保证CSS类名不会重复的,样式不依赖html结构,复用class,正是BEM和OOCSS的核心思想。
总结
BEM是一种命名规范,OOCSS是CSS的设计思想,其实BEM也用到了OOCSS的思想。
CSS 代码的数量愈发庞大,开发团队的规模也相应扩大。在 CSS 开发团队中需要一个统一和固定的 CSS 代码组织和管理规范,若有不足之处欢迎大家补充。
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新动态
- 《庄心妍 实力唱将 发烧音乐精选集》[WAV+CUE][380MB]
- [音展纪念碟]2006年《TAA台湾第十六届国际HI-ENDHI-FI音响展》2cd[WAV]
- 中国音乐地图之听见西藏山歌牧歌酒歌2020[WAV分轨]
- 王宏伟2017-永远的红飘带[太平洋影音][WAV+CUE]
- 费翔.1997-NOW现在【第一中国】【WAV+CUE】
- 新格合唱团.1981-我唱你和2辑(滚石新格民歌系列)【新格】【WAV+CUE】
- 陈柏宇.2011-QUINQUENNIUM【SONY】【WAV+CUE】
- 雨果唱片-《金唛系列-蔷薇依韵琼瑶》WAV
- 陈百强《凝望(2012华纳LPCD45限量版)[DMI]》[WAV整轨]
- 模拟之声慢刻CD《徐小凤45周年》[德国母带][低速原抓WAV+CUE]
- 《庄心妍 实力唱将 发烧音乐精选集》[WAV+CUE][380MB]
- 《王菲 单曲合集》[FlAC/分轨][520MB]
- 《费玉清 原味再现 水长流》[WAV+CUE][430MB]
- 群星.1992-畅销榜老歌金曲10CD【风格】【WAV+CUE】
- 孙悦.2024-时光音乐会【金蜂】【WAV+CUE】