npm 包 csbem 使用教程

在前端开发中,BEM(Block Element Modifier)是一种流行的方法论,它让我们通过统一的命名规则来组织 HTML 和 CSS 代码。而 csbem 这个 NPM 包则是 BEM 命名规则的一种实现,它可以自动生成类名,并便于在 JS 中调用。本文将详细介绍 csbem 的使用方法,并提供示例代码。

安装

首先,我们需要使用 npm 命令行工具来安装 csbem 包。可以在项目的根目录下运行以下命令:

--- ------- ------ -----

这将在项目的 node_modules 目录下安装 csbem 包,并将其添加到 package.json 文件的 dependencies 中。

使用

安装完 csbem 就可以通过 import 或 require 的方式在项目中调用了。csbem 的主要功能是自动生成类名,它提供了两种调用方式:函数调用和模板字符串调用。

函数调用

函数调用的语法如下:

------ ----- ---- --------

----- --------- - ------------------ ------------ -------------

在这个例子中,我们通过 bem 函数传入块(block)、元素(elem)以及两个修饰符(modifier1 和 modifier2),并自动合并生成类名 block__elem block__elem--modifier1 block__elem--modifier2,然后可以将其赋给变量 elemClass。可以使用 elemClass 来标记 HTML 中的元素或选择器等其他用途。

模板字符串调用

模板字符串调用方式类似于函数调用,但是使用了 ES6 模板字符串的语法。语法如下:

------ ------ ---- --------

----- --------- - ---------------- --------- -----------

这里使用了 CSBEM 工具的特殊空格替换语法。与函数调用类似,也是将块、元素和修饰符参数传入 bemt 模板字符串中,然后将结果自动合并形成类名。在这个例子中,elemClass 等于 block__elem block__elem--modifier1 block__elem--modifier2

状态修改

我们还可以在元素的类名中使用伪类(pseudo-class)和伪元素(pseudo-element)的状态,这可以通过在块、元素和修饰符参数之后传递状态(state)参数来实现。例如:

------ ------ ---- --------

----- --------- - ---------------- -----------

在这里,我们在类名后面添加了 is-active 状态,这将自动合并到生成的类名中。在 CSS 中,我们可以这样使用它:

---------------------- -
    ----------------- -----
-

区块封装

在 BEM 中,块(Block)是一个用于封装 HTML / CSS 片段的独立实体,这允许我们使用相同的类名在项目的不同部分甚至不同项目中重用代码。因此,在 csbem 中,我们可以使用 block 函数来创建块级别的 CSS 类。

------ ------- ---- --------

----- ------- - ------------------

-- -------
----- ------------ - ----------------------
-- -------- ---------------

-- -----------
----- ------------------------ - ----------------------
-- -------- ----------------

-- ------------
----- ---------------- - --------------------- ----------
-- --------------- -----------------------

在这个例子中,我们使用 block 函数创建了一个名为 my-block 的块级别的 CSS 类,然后使用 elem 和 mod 方法创建不同类型的类名(块、元素、修饰符)。可以将这些类名应用于 HTML 中的元素或选择器等其他用途,以确保样式本地化。

辅助方法

CSBEM 工具还提供了一些辅助方法来帮助我们生成类名,例如:

  • arr(...):将数组中的所有元素合并为一个类名。
  • compose(...):将多个类名组合成一个。
  • useClassnames(...classNames):共同使用类名的常见模式的快捷方法。
------ ----- -------- -------------- ---- --------

-- ----------------
----- ------- - ----------- ------ --------
-- --- --- ---

-- ----------
----- ------------- - -------------- ------ -------
-- --- --- ---

-- ----------------
----- ------------------- - -
    ---- -----
    ---- ------
    ---- ----
-

----- ---------------- - --------------------------- ---------------------
-- ---------- --------------- ---------------

总结

在本文中,我们详细介绍了 csbem 包的使用方法,这是一种基于 BEM 命名规则实现的自动生成 CSS 类名的 NPM 包。我们介绍了两种调用方式(函数调用和模板字调用),以及 csbem 的其他辅助方法。通过使用 csbem 包,我们可以更轻松地遵循 BEM 命名规则,使我们的项目更易于维护和扩展。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/6005725a81e8991b448e87c4


猜你喜欢

  • npm 包 tokenizer.js 使用教程

    在前端开发中,有时候需要对一段文本进行解析和分析。tokenizer.js 是一个基于 JavaScript 的 npm 包,可以用于将文本转换为 tokens,方便后续的处理和分析。

    3 年前
  • npm 包 cfcmradio 使用教程

    简介 cfcmradio 是一个基于 Node.js 的 npm 包,用于播放中国外交部新闻频道的直播节目。该包包含了节目链接和播放器代码,可以轻松实现在 Node.js 环境下播放 CFCM Rad...

    3 年前
  • npm 包 ngx-adal 使用教程

    前言 在前端开发中,使用第三方包已经成为了一种很普遍的做法,这不仅可以提高开发效率,还可以让我们避免一些重复性的工作。在前端中,Angular.js 框架已经成为很多企业开发的首选,Angular 的...

    3 年前
  • npm 包 @savvy-css/garnishes 使用教程

    在前端开发中,我们经常会用到样式框架(CSS framework)来帮助我们快速构建页面。而 @savvy-css/garnishes 就是一款非常优秀的 CSS 框架,它提供了许多实用的 UI 组件...

    3 年前
  • npm 包 ngrx-utils 使用教程

    前言 在前端开发中,利用框架进行状态管理和数据流控制是一种常见的方式。ngrx 是基于 RxJS 的状态管理框架,它提供了一种统一管理应用程序状态和数据流的方式,使得复杂的应用程序变得易于维护。

    3 年前
  • npm包react-selectize-advizr使用教程

    介绍 react-selectize-advizr 是一个基于 React 的 UI 组件库,提供多种数据选择方式和样式自定义选项。该组件库主要由两个组件组成:Select 和 MultiSelect...

    3 年前
  • npm包sedra-parse使用教程

    简介 sedra-parse是一个用于阿拉伯语文本解析的npm包,可以将阿拉伯文本作为输入,输出相应的阿拉伯文本的拼写、语法和词汇信息。该包可用于阿拉伯语文本分析、自然语言处理以及其他文字处理任务。

    3 年前
  • npm 包 tm-service-vendors 使用教程

    简介 tm-service-vendors 是一款专门为前端开发人员设计的 npm 包,它能用于将第三方服务商的信息集成到你的前端应用中,目前支持的第三方服务商包括 AWS(Amazon Web Se...

    3 年前
  • npm 包 @savvy-css/object-patterns 使用教程

    在前端开发中,我们经常需要使用多种不同的样式,如字体大小、颜色、背景色等,而这些样式之间可能存在着某种关系。@savvy-css/object-patterns 就是一个能够有效组织这些样式的 npm...

    3 年前
  • npm 包 ljx-sequelize-wrapper 使用教程

    简介 ljx-sequelize-wrapper 是一个基于 Sequelize 的轻量级 ORM 框架,提供一个更好用的 API 来操作数据库。它可以让开发者更加方便地进行数据库表的添加、删除、更新...

    3 年前
  • npm 包 spyfy 使用教程

    1. 简介 spyfy 是一款基于 JavaScript 的调试辅助工具,它可以捕获代码中的函数调用和属性访问,并记录下来,从而方便调试和测试。 2. 安装使用 2.1 安装 在命令行中输入以下命令进...

    3 年前
  • npm 包 cdn-deploy-cli 使用教程

    随着全球互联网的普及,网站的访问量越来越大,为了提升网站的访问速度及用户体验,常常需要使用 CDN (Content Delivery Network) 技术,将网站上的静态资源如图片、样式表、脚本等...

    3 年前
  • npm 包 rnkit_verify 使用教程

    最近在开发 React Native 项目中,我使用了一个非常有用的 npm 包 -- rnkit_verify。该包可以用于在应用程序中实现验证码验证功能,以及访问短信验证服务。

    3 年前
  • npm 包 vuejs-count-down-custom 使用教程

    在前端开发中,倒计时是一项比较常见的功能。虽然可以通过手动编写实现倒计时,但是这样做不仅效率低下,而且容易出错。Vuejs-count-down-custom 是一个便利的 npm 包,开发者可以使用...

    3 年前
  • npm 包 @yuanchuan/match 使用教程

    简介 @yuanchuan/match 是一款基于正则表达式的字符串匹配工具,旨在解决前端开发中常见的数据校验、字符串处理等问题。在前端开发中,常常需要对用户输入的数据进行校验和过滤,@yuanchu...

    3 年前
  • npm 包 is-req-https 使用教程

    在前端开发中,我们可能会需要判断当前页面是否通过 HTTPS 协议进行通信,这个需求在某些场景下特别重要,例如在一些敏感的信息涉及网站中。而 npm 包 is-req-https 正是一款方便大家实现...

    3 年前
  • NPM 包 ngx-fv 使用教程

    本文将介绍如何使用 npm 包 ngx-fv 实现前端表单验证功能。ngx-fv 是 Angular 的表单验证模块,可帮助前端开发者快速实现表单验证,提高开发效率。

    3 年前
  • npm 包 bb-hunter 使用教程

    简介 bb-hunter 是一个用于检查 JavaScript 代码中是否包含特定的代码片段的 npm 包。可以用于找出项目代码中潜在的安全风险、未授权引用第三方库等问题。

    3 年前
  • npm 包 `csak-rest-fs` 使用教程

    简介 csak-rest-fs 是一个基于 Node.js 的 npm 包,用于搭建简单的文件存储 REST 接口,支持对文件的上传、下载、复制、移动、重命名等操作,并且支持跨域访问。

    3 年前
  • npm 包 decode-zhuyin 使用教程

    中文输入法中有五笔和拼音,朗文和注音等。在这些输入法中,注音键盘是台湾地区非常流行的输入法之一。然而,有时候我们需要将注音转换成拼音,对注音编码进行解码处理。这时候,可以使用 npm 包 decode...

    3 年前

相关推荐

    暂无文章