您现在的位置是:网站首页> 编程资料编程资料
CSS规范BEM CSS和OOCSS的示例代码详解CSS使用BEM命名规范实践CSS样式书写顺序和命名规范及注意事项值得收藏的CSS命名规范(规则)常用的CSS命名规则 好的 CSS 命名规范可以节约 Debug 时间css 命名:BEM, scoped css, css modules 与 css-in-js详解详解css BEM书写规范 从QQtabBar看css命名规范BEM的详细介绍
                     2021-09-03
                1106人已围观
                
                2021-09-03
                1106人已围观
            
简介 这篇文章主要介绍了CSS规范BEM CSS和OOCSS的示例代码详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
前言

在项目开发中,由于每个人的代码习惯不同,编写出来的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 结构的依赖

一般的导航栏写法,如果要对那些  标签定义样式,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 代码组织和管理规范,若有不足之处欢迎大家补充。
到此这篇关于CSS规范BEM CSS和OOCSS的示例代码详解的文章就介绍到这了,更多相关CSS规范BEM CSS和OOCSS内容请搜索以前的文章或继续浏览下面的相关文章,希望大家以后多多支持!
相关内容
- 一文汇总 CSS 两列布局和三列布局的具体使用CSS实现页面两列布局与三列布局的方法示例CSS两列布局实现方式总结横向两列布局(左列固定,右列自适应)的4种CSS实现方式学习DIV+CSS网页布局之两列布局CSS三列布局两端固定宽度中间自适应CSS布局实例代码 两列布局实例CSS实现两列布局的N种方法
- CSS 伪类修改input选中样式的示例代码详解css3中的伪类before和after常见用法CSS伪类:empty让我眼前一亮(实例代码)浅谈CSS 伪元素&伪类的妙用css伪类 右下角点击出现 对号角标表示选中的示例代码css选择器四大类:基本、组合、属性、伪类详解如何使用CSS3中的结构伪类选择器和伪元素选择器解决移动端跳转问题(CSS过渡、target伪类)css3 伪类选择器快速复习小结CSS新增的:where和:is伪类函数是什么
- flex布局实现无缝滚动的示例代码flex布局实现每行固定数量+自适应布局浅谈Flex布局与缩放比例计算详解flex布局中保持内容不超出容器的解决办法深入浅析CSS3中的Flex布局整理css3 flex实现div内容水平垂直居中的几种方法详解CSS中的flex布局css用Flex布局制作简易柱状图的实现flex布局兼容性问题小结css3 flex布局 justify-content:space-between 最后一行左对齐详解flex布局中flex-grow与flex-shrink的计算方式
- 解决flex布局space-between最后一行左对齐的方法flex弹性盒布局最后一行左对齐的实现思路css3 flex布局 justify-content:space-between 最后一行左对齐让CSS flex布局最后一行列表左对齐的N种方法(小结)
- 使用css写带纹理渐变背景图的示例代码使用CSS cross-fade()实现背景图像半透明效果的示例代码完美解决webpack打包css背景图片路径问题CSS3为背景图设置遮罩并解决遮罩样式继承问题CSS设置div背景图的实现代码CSS背景图片设置的6个有趣的技巧CSS3 实现响应鼠标移动背景图片漂移效果的用户介绍卡片源码
- 纯Css实现Div高度根据自适应宽度(百分比)调整css和css3弹性盒模型实现元素宽度(高度)自适应css 高度自适应的问题示例探讨CSS min-height IE6、IE7、FF下DIV自适应高度纯CSS无hacks的跨游览器自适应高度多列布局 推荐css textarea 高度自适应,无滚动条CSS解决未知高度的垂直水平居中自适应问题CSS 实现高度自适应铺满整屏的实现
- 纯CSS实现iOS风格打开关闭选择框功能CSS Transition通过改变Height实现展开收起元素从QQtabBar看css命名规范BEM的详细介绍css实现两栏布局,左侧固定宽,右侧自适应的多种方法CSS 实现Chrome标签栏的技巧CSS实现两列布局的N种方法CSS实现隐藏搜索框功能(动画正反向序列)CSS3中Animation实现简单的手指点击动画的示例详解CSS中的特指度和层叠问题详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)关于CSS浮动与取消浮动的问题
- 纯CSS实现自定义单选框和复选框功能HTML+CSS实现单选框、复选框美观的样式利用CSS3实现单选框动画特效示例代码纯css3实现效果超级炫的checkbox复选框和radio单选框CSS3实例分享--超炫checkbox复选框和radio单选框CSS3实现的表单单选框、复选框特效CSS3实现复选框动画特效示例代码 CSS自定义绿色复选框按钮样式使用CSS实现页面复选框的方法
- 纯CSS3实现鼠标滑过按钮动画第二节CSS实现鼠标滑过鼠标点击代码写法CSS3制作炫酷带方向感应的鼠标滑过图片3D动画纯CSS3实现8组超炫酷鼠标滑过图片动画css实现鼠标滑过五角星高亮效果 纯CSS实现鼠标滑过显示子菜单的二级菜单效果CSS实现鼠标滑过文字弹出一段说明文字无JS代码纯css实现鼠标滑过弹出层效果CSS控制当鼠标滑过时更换图片的效果css实现鼠标滑过改变文字(中文变英文)使用css的filter写鼠标滑过效果的实现示例
- CSS中@用法小结(示例详解)CSS Transition通过改变Height实现展开收起元素从QQtabBar看css命名规范BEM的详细介绍css实现两栏布局,左侧固定宽,右侧自适应的多种方法CSS 实现Chrome标签栏的技巧CSS实现两列布局的N种方法CSS实现隐藏搜索框功能(动画正反向序列)CSS3中Animation实现简单的手指点击动画的示例详解CSS中的特指度和层叠问题详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)关于CSS浮动与取消浮动的问题
 
                                
                                                         
                                
                                                         
                                
                                                         
 
    