首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

React 设计模式 0x4:样式

); } export default Example; 优点: 编写简单 保持组件干净,不会混合样式和组件 可以重用样式 缺点: 加载速度慢,因为需要加载额外的文件...# Sass Sass(Synthetically Awesome Style Sheet)是一种预处理器,具有扩展名 .scss,有一些很棒的功能,例如: Mixins(混入) Inheritance...(继承) Nesting(嵌套) 可以通过以下方式安装 Sass: npm install sass 使用: /* example.scss */ .example { color: red;...# BEM BEM 是一种命名约定,它可以帮助您更好地组织样式。BEM 代表块(block)、元素(element)和修饰符(modifier),它们可以组合在一起,用于将大型界面拆分为独立的块。..."> 修饰符(modifier) 用于描述块或元素的外观、状态或行为 修饰符与块或元素之间使用双中划线 -- 或 单下划线 _ 连接 <div className="form

1.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    大型项目中的结构化CSS

    现在(从css渗漏的角度)这就变得好理解了,那些基本排版、文本输入框以及全局继承的样式就显得合理了。这是HTML和CSS为何被开诚布公的、公用化地创造出来。...想理解这些语言背后的原因,我常想去总结出一本书:想每页看起来是有规划的, 想一个简单连贯的样式贯穿始终但不需要那些冗余的css代码。...规则3: 构建组件时用边界元法(BEM)命名 尽可能试着用BEM命名去创建独立的组件,我们不必完全按照BEM的规范 - 只是用命名组合,这意味着类名以如下的方式命名: .block__element--...这允许我们仅可以修改在特定块(block)级别的修饰符, 并且在子块中不能重复修饰符(可以理解为父子嵌套时不重名;“E”在BEM中即元素elements)。...为了更好的理解BEM体系,可以转向这里 - 由Harry Roberts写的CSS指南 :BEM形式的命名。

    1.2K40

    怎样才能写出更好的 CSS

    SCSS 还有很多其他功能:比如混入、继承和其他指令(@for,@if,等等),在此不做一一介绍了。 如果你想了解更多信息,请查看相应的文档 戳这里。文档写得很好,且易于理解。 2....BEM 是一种命名约定,是英文 Block Element Modifier(块元素修饰符)的缩写。 这种方法可以使我们的代码结构化,并提高模块化和可重用性。现在让我们说一说什么是块、元素和修饰符。...BEM 的时候,你可以用且只能用类来命名。...是的,你的 HTML 文件会超负荷,但是不用担心,与 BEM 带来的好处相比,这只是个小小的缺点。 示例 以下是一个练习。你可以去你最喜欢或最常用的网站,然后想想看哪些是块、元素和修饰符。...其余的工作更简单。

    1.7K10

    编写模块化CSS——BEM

    按钮很好地阐释了可以包含不同样式的块。如果将 元素的背景颜色设置为红色,则所有 都将被强制继承红色背景。...那么,如果你需要一个不同的背景颜色,你所做的就是改成一个新的 class,比如说 .button--secondary,很舒服吧! ? 这给我们引入了 BEM 的下一部分 —— 修饰符。...修饰符(Modifier) 修饰符是改变某个块的外观的标志。要使用修饰符,可以将 --modifier 添加到块中。...在传统的 BEM 中,当你使用修饰符时,你应该 将块和修饰符添加 到 HTML 中,以便在新的 .button--secondary 中不重写 .button 样式。 ? ?...(顺便说一下,看见.l-wrap 中的 .l-了没,这是命名空间,我将在下一篇文章中分享更多的内容。 总结 所以,这就是我简单地使用 BEM 的方法。

    2.1K70

    从element-ui源码来看BEM实现

    BEM代表“块(block),元素(element),修饰符(modifier)”,开发组件的过程中经常使用这三个实体,而在选择器中,这三个实体由以下符号来表示扩展关系: - 中划线:仅作为连字符使用...type-block__element_modifier 以上的描述是从腾讯的前端规范库中找到的,简单的来说理解了块、元素、修饰符三个分类之后,就能大致理解BEM代码是什么样的结构了,可是了解结构是一方面...我在element组件库中的mixins.scss文件中找到了想要的答案。 接下来我要讲的就是如何利用sass,编写具有可读性和可维护性的BEM规则的css代码。...而在块的内部,再来编写跟这个块关联的其他样式代码。 块的构建非常的简单,接下来来看稍微有点复杂的元素的定义: @mixin e($element) { $E: $element !...利用刚刚介绍的函数,以及块、元素、修饰符的实现代码,在sass中已经能非常高效率并且优雅的基于BEM规范的代码了。

    1.9K30

    如何更优雅的编写CSS代码

    scss还有一些更多的特征,比如混合、继承和其它指令(@for,@if,…)。但我不会在这里谈它们。 如果你想了解更多关于scss的知识,可以阅读它们的文档,这更便于理解和学习。...BEM 帮助我们解决该问题。BEM 是一种命名约定,表示“块 元素 修饰符”。 该方案可以使我们的代码更加结构化,更加模块化和更大的可复用性。现在我来解释下什么是块、元素和修饰符。...这些就是所谓的修饰符。它们是块或元素的标识,用于更改行为、外观等。...这种情况请使用具体的 class 类名来替代。 是的,你的 HTML 文件将会因为 BEM 变得臃肿,但比起BEM带来的好处,这只是一个无足轻重的小缺点。 举个例子 这是给你的练习。...相信我,该模式非常简单,你只需记住如下两条原则即可: 所有的分块放在7个不同的文件夹中 把这些分块通过 import 引入到一个 main.scss 文件中,该文件放到根目录,嗯,就是这么简单。

    1.9K10

    在大型项目中组织CSS

    为了理解这些语言背后的思想,我经常设想在给书排版:你不会想让每一页看起来都不一样——是的,你想要简单一致的样式贯穿整本书,没有太多垃圾。...我们没有遵循完整的BEM指南——只是命名方案,这就是说类名应该是这种形式: .block__element--modifier 为此我们这样组织我们的 Sass: .pg-deadline &__date...Sass嵌套为我们创建BEM类名。...这就允许我们只要指定区块的修饰符——也就是正在编辑的内容—— 不用在区块内的所有子元素上重复修饰符(BEM中的E)。...为了更好地理解类似BEM的命名方式,前往查看Harry Roberts的CSS指南的类BEM命名部分。(需要提到的是,我们发现Harry实际上建立了一套跟我们类似的命名方案。)

    80820

    团队分享,Bem规范调研及实践

    BEM 是 BlockElementModifier 的缩写 ,其中B 表示块(block)、E 表示元素(element)、M 表示修饰符(modifier)。 这三个部分通常使用__ 与--连接。...即: .块__元素--修饰符{} Block:代表了一个独立的块级元素,可以理解为功能组件块。...通过浏览HTML代码中的class属性,你就能够明白模块之间是如何关联的:有一些仅仅是组件,有一些则是这些组件的子孙或者是元素,还有一些是组件的其他形态或者是修饰符。...命名方式,模块层级关系简单清晰,而且 css 书写上也不必作过多的层级选择。...上面我们每个样式都要写一遍 card,如果 card 换成一个比较长的单词,这样也太冗长了,这也是大家不太喜欢 bem 的一个原因,但这个 sass 或 less 是很好的解决的,我们可以用 & 表示根元素

    81410

    进阶 | CSS进阶:提高你前端水平的 4 个技巧

    BEM 代表块(block)、元素(element)和修饰符(modifier)。Yandex,在俄罗斯的相当于谷歌的搜索引擎,为了解决他们 CSS 代码库中的缩放问题而提出了它(它指BEM)。...BEM 是一个极其简单——又极其严格——的命名规范。 .block {} .block__element {} .block--modifier {} 块(Blocks)代表高级别的类。...元素(Elements)是块的子模块。修饰符(modifiers)代表不同的状态。...如果你想要更改按钮的状态,我们可以为按钮增加一个修饰符,例如 active 。 关于命名规范要记住的一件事是,无论你喜欢哪种命名规范,你会经常继承或者工作在不同标准的代码库上。...更多有关组织文件结构和 CSS 架构的文章,详见《Sass 审美 1:架构和组织样式文件》和《可扩展和可维护的 CSS 架构》。

    45710

    简单的JavaScript继承

    此外我想要使其可以被简单的、高效的被使用。这里展示了一个可以使用完成后的结果来实现的实例。...让构造器的创建更加简单(在这个例子中仅仅使用init方法来创建) 为了创建一个新的‘class’,你必须要继承一个已经存在的类(sub-class)...._super()调用 Person超类的原始 init()和 dance()方法 本例的代码使我很愉快:它使得“类”的概念作为一种结构,保持继承简单,并且允许调用超类方法。...简单的类创建与继承 这里是该内容的实现(合理的大小并且有备注) 大概有25行。 欢迎并感谢提出建议。...我认为这个简单的代码可以说明很多的事情(更容易去学习,去继承,更少的下载),因此我认为这个实现是开始和学习JavaScript类构造和继承的基础的好地方。

    59420

    CSS — BEM 命名规范

    前言: 最近团队要考虑代码风格统一 1 什么是 BEM 命名规范 Bem 是块(block)、元素(element)、修饰符(modifier)的简写,由 Yandex 团队提出的一种前端 CSS 命名方法论...__ 双下划线:双下划线用来连接块和块的子元素 _ 单下划线:单下划线用来描述一个块或者块的子元素的一种状态 BEM 是一个简单又非常有用的命名约定。...命名方式,模块层级关系简单清晰,而且 css 书写上也不必作过多的层级选择。...2 如何使用 BEM 命名法 2.1 什么时候应该用 BEM 格式 使用 BEM 的诀窍是,你要知道什么时候哪些东西是应该写成 BEM 格式的。 并不是每个地方都应该使用 BEM 命名方式。...而且,一般来说会使用通过 LESS/SASS 等预处理器语言来编写 CSS,利用其语言特性书写起来要简单很多。

    2.9K31

    post-csslesssass样式嵌套与命令之&符号—BEM

    如:.demo-title {  .demo & {    font-size: 20px;  }}输出.demo .demo-title {  font-size: 20px;}借代父选择器简单的a ...每个块在逻辑上和功能上都是相互独立的。 */.block {}/* 元素是块中的组成部分。元素不能离开块来使用。BEM 不推荐在元素中嵌套其他元素。 ...*/.block__element {}/* 修饰符用来定义块或元素的外观和行为。...同样的块在应用不同的修饰符之后,会有不同的外观 */.block--modifier {}通过 bem 的命名方式,可以让我们的 css 代码层次结构清晰,通过严格的命名也可以解决命名冲突的问题,但也不能完全避免...    }参考文章:LESS详解之嵌套(&) https://blog.csdn.net/lee_magnum/article/details/12950407转载本站文章《post-css/less/sass

    37520

    post-csslesssass样式嵌套与命令之&符号—BEM

    如:.demo-title {  .demo & {    font-size: 20px;  }}输出.demo .demo-title {  font-size: 20px;}借代父选择器简单的a ...每个块在逻辑上和功能上都是相互独立的。 */.block {}/* 元素是块中的组成部分。元素不能离开块来使用。BEM 不推荐在元素中嵌套其他元素。 ...*/.block__element {}/* 修饰符用来定义块或元素的外观和行为。...同样的块在应用不同的修饰符之后,会有不同的外观 */.block--modifier {}通过 bem 的命名方式,可以让我们的 css 代码层次结构清晰,通过严格的命名也可以解决命名冲突的问题,但也不能完全避免...    }参考文章:LESS详解之嵌套(&) https://blog.csdn.net/lee_magnum/article/details/12950407转载本站文章《post-css/less/sass

    46330

    【编码规范】Airbnb CSS u002F Sass 编码风格指南

    ---- 用更合理的方式写 CSS / Sass 规范的代码可以促进团队合作, 规范的代码可以减少 bug 处理, 规范的代码可以降低维护成本, 规范的代码有助于代码审查, 养成代码规范的习惯,有助于程序员自身的成长...目录 术语 规则声明 选择器 属性CSS 格式 注释 OOCSS 和 BEM - ID 选择器 JavaScript 钩子 - 边框Sass 语法 排序 变量 Mixins 扩展指令...BEM 最初是由 Yandex 提出的,要知道他们拥有巨大的代码库和可伸缩性,BEM 就是为此而生的,并且可以作为一套遵循 OOCSS 的参考指导规范。....listing-card--featured 是一个修饰符(modifier),表示这个块与 .listing-card 有着不同的状态或者变化。...Bad .foo { border: none; } Good .foo { border: 0; } Sass 语法 使用 .scss 的语法,不使用 .sass 原本的语法。

    2.4K20

    超级简单的SASS教程和使用指南

    面对这些问题,我们现在介绍一下SASS。简单的说就是CSS的升级版。可以自定义变量,可以有if语句,还可以嵌套等等,厉害了!那么就让我们介绍一下这个神奇的SASS吧!...1、什么是SASS SASS是一个CSS开发工具,提供了很多方便的书写方式,大大节省了我们的开发时间,让CSS的开发也变得简单易维护。 本文总结了SASS的主要用法。...sass test.scss test.css SASS 提供了四种编译风格选项: nested:嵌套缩进的css代码,它是默认值。 扩展:未缩进、扩展的 css 代码。...*/ 4、 代码重用 4.1、 继承 SASS 允许选择器从另一个选择器继承。...例如,现有的 class1: .class1 { Border: 1px solid #ddd; } 要从 class2 继承 class1,请使用 @extend 命令: .class2 { @

    1.2K30

    CSS模块化:提升前端开发效率与可维护性的关键

    1.2 CSS模块化的核心思想 CSS模块化是一种将样式按模块划分的方法,每个模块都具有自己的作用域,样式不会影响到其他模块,从而降低了样式冲突的概率。 2....2.2 可读性 模块化的CSS更容易理解和维护,开发者可以更快速地找到并修改特定模块的样式。 2.3 降低维护成本 随着项目规模的扩大,采用CSS模块化可以降低维护成本,减少样式冲突的修复工作。...CSS模块化的实现方式 3.1 BEM(块、元素、修饰符) BEM是一种常用的CSS命名约定,通过块(Block)、元素(Element)、修饰符(Modifier)的组合来命名样式,以确保样式的唯一性...3.3 CSS预处理器 使用CSS预处理器如Sass或Less可以将样式分割成模块,并使用变量和嵌套规则来提高可维护性。 4....在项目中应用CSS模块化的最佳实践 4.1 选择适当的实现方式 根据项目需求和团队技能,选择合适的CSS模块化方法。

    35140

    如何写出一套可维护的CSS库?

    可以想到,由于上面的样式规则使用了继承选择符,因此对于html的结构实际是有一定依赖的。如果html发生重构,就有可能不再具有这些样式。...当然,继承选择符是有用的,它可以减少因相同命名引发的样式冲突(常发生于多人协作开发)。但是,我们不应过度使用,在不造成样式冲突的允许范围之内,尽可能使用短的、不限定html结构的选择符。...BEMCSS BEM 分别代表着:Block(块)、Element(元素/子块/组成部分)、Modifier(修饰符),是一种组件化的 CSS 命名方法和规范,由俄罗斯 Yandex 团队所提出。...其目的是将用户界面划分成独立的(模)块,使开发更为简单和快速,利于团队协作开发。 特点 组件化/模块化的开发思路。...[Block 块]__[Element 元素]_[Modifier 修饰符] 不同的命名模式,区别在于BEM之间的连接符号不同,依个人而定: .

    71630
    领券