在“学习爱BEM”中,我要表明我对BEM语法的新感受。 我很高兴地报告说,经过2年以上,我仍然对我的选择感到满意。
说起 CSS 命名规范,大家应该都很熟悉,或者应该听说过 BEM 。BEM 是由 Yandex 团队提出的一种 CSS Class 命名方法,旨在帮助开发人员创建更好的且结构一致的 CSS 模块。
本文翻译自Zell的博客——【Writing modular CSS (Part 1) — BEM】,原文地址:https://zellwk.com/blog/css-architecture-1/
我听说很多开发者厌恶 CSS。而在我的经验中,这往往是由于他们并没有花时间来学习 CSS。 CSS 算不上是最优美的『语言』,但迄今二十多年来,它都是美化 web 举足轻重的工具。从这点来说,也还算不
以前看过一些CSS的编码规范,也照着规范编写代码,但是还是觉得自己的CSS编码风格不是很好,在平时开发中使用各个知名的组件库的时候,发现现在挺多组件库都是BEM的命名风格了,于是找了比较知名的element饿了么前端的组件库的源码,想从看饿了么组件库的代码入手,学习学习大厂的的CSS BEM规范代码的书写风格。
BEM 是一种前端项目开发的方法学,由 Yandex 公司提出。BEM 的名称来源于该方法学的三个组成部分的英文首字母,分别是块(Block)、元素(Element)和修饰符(Modifier)。这三个不同的组成部分称为 BEM 实体。
这样的css编写效果就是传统的命名空间的方式写css,它很好得解决了编写单纯全局css互相影响的问题,但是另外一方面它也引申出了一些问题:
BEM即块(Block)、元素(Element)、修饰符(modifier),是由著名的俄罗斯搜索引擎团队Yandex提出的一种前端命名方法论。BEM命名约定更加严格,而且包含更多的信息,一般用于团队开发一个耗时的大项目中。我们常见的BEM命名方式一般都是经过改良的,本文介绍的是Nicolas Gallagher(Twitter前端工程师)的改进版。命名约定的格式如下:
BEM(Block-Element-Modifier)是一种 CSS 模块化方法,旨在简化 CSS 编写并提高代码的可读性和可维护性,它将 HTML 元素划分为三个部分: 块(block)、元素(element) 和 修饰符(modifier)。
如何写出一套可维护的CSS库?不妨谈谈CSS的设计模式/架构吧。接下来将为你讲述三个主流的CSS设计思想和一个最近通用的CSS设计思想:OOCSS、SMACSS、BEMCSS、METACSS。
刚入行前端的时候,看见了百度的前端代码规范,到现在只是其中的几个点一直有在注意。有兴趣可以看看: 百度前端编码规范
最近老大在维护别人的代码时,发现我们团队写的样式各有种的想法及风格,这在后续维护会增加一定的难度,所以老大决定统一样式的会名规范,所以就安排我去调研及实践,下面是我调研的结果。
一开始,Yandex公司推出的BEM,包括了规范以及其配套构建工具。如今提到的BEM主要是指其中的规范,在BEM最新的推广页中,对其的描述为:
让我们开门见山:编写优秀的 CSS 代码是件十分痛苦的事情。很多开发人员都不想做 CSS 开发。你让我干什么都行,但是 CSS 还是算了吧。
作者|jaychen 原文|https://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651552192&idx=1&sn=5342d6ea6d77
在前端开发中,编写干净高效的代码可以使程序员变得更优秀。无论是个人项目、合作任务、敏捷开发项目还是求职测试项目,都很重要。开发者通常会忽视一个基本的部分,那就是实施CSS命名规范,有些人会在调试和管理庞大的代码库时才意识到糟糕的CSS代码有多可怕。无论你是否意识到,在编码测试或技术面试中,你的命名习惯都会传达关于你开发实践的信息。它们可以用来评估你的行为和效率。因此,在本文中,我们将展示CSS命名的最佳实践,以提高代码质量。通过阅读本文,读者应该清楚地了解CSS命名规范及其好处,并熟悉不同的样式命名约定。读者的最终目标是为他们提供可操作的见解和实用的建议,以便他们可以将这些规范应用到自己的开发工作流中,以编写更清晰、更高效的代码。
这句话你之前可能听过100次了。 原因是CSS中的一切都默认为全局的。如果你是一个C程序员你就知道全局变量不好。如果你是任何一种程序员,你都知道隔离和可组合的模块是构建可维护系统的关键。
在每个 Web 应用程序中,样式化非常重要,因为样式使其对用户非常有吸引力,并为用户提供良好的体验。在 React 中有不同的方法来实现这一点。
直白的说:编写优秀的 css 代码可能是很痛苦的。很多程序员都不想从事 CSS 开发—我可以做任何事情,除了css以外。
其实在日常开发CSS当中,会遇到许多的问题,使用设计模式能够很好的解决。例如在日常开发项目,需要组件化时,组件内部的class样式类管理就非常的杂乱。 大部分公司的命名规则还是只有大小驼峰、使用英文等这些基础的命名规则。经常会自己都忘了自己命名的css是啥,使用设计模式就能很好的解决该问题。
你也许听说过不下100 次了。因为在CSS中默认都是全局的申明。如果你是个C的程序员你知道全局变量是糟糕的。同时不管你是什么程序员,你该了解独立及可组合的模块是一个可维护系统的关键所在。
看了《 less 的 & 详解 https://www.jianshu.com/p/127b0974cfc3》,对于此文再做一别补充
上文「前端工程四部曲」模块化的前世今生(上)中我们主要介绍了JS模块化相关的知识,对于JS模块化,相信很多人都不陌生,但说起CSS模块化,可能大家就没有这么清晰了。大部分人都会重点关注JS而忽略CSS,但CSS也是前端三剑客不可或缺的一部分,在编写CSS的时候,绝大多数人都是比较随意的,所以会经常造成一些开发痛点。接下来这篇文章我们就来简单聊一聊 CSS 模块化。
在现代Web开发中,样式表的管理变得越来越复杂。为了应对这一挑战,CSS模块化成为了一种重要的开发方法。它有助于组织和维护样式,提高开发效率,并降低了样式冲突的风险。本文将深入探讨CSS模块化的定义、优势、实现方式以及如何在项目中有效地应用它。
BEM的关键是,可以获得更多的描述和更加清晰的结构,从其名字可以知道某个标记的含义。于是,通过查看 HTML 代码中的 class 属性,就能知道元素之间的关联。
在规则声明中,“选择器” 负责选取 DOM 树中的元素,这些元素将被定义的属性所修饰。选择器可以匹配 HTML 元素,也可以匹配一个元素的类名、ID, 或者元素拥有的属性。以下是选择器的例子:
近期学习了一下大厂h5开发实战内容,并且参考实战手册做一些记录。大概包括以下几个方面内容:
| 导语 CSS 做为 Web 技术的基石,从一开始就展示出了巨大的潜力。它的入门非常简单,你只需为元素定义好样式属性和值。然而 CSS 特性随着规范的升级越来越丰富,前端业务复杂性的增加也使得工程愈加庞大。在大型 Web 应用里面,CSS 的组织是一件复杂和凌乱的事情,你更改页面上任意一个元素的一行CSS样式都有可能影响到其他页面上的元素。 由于 CSS 本身并不编程特性,因此在演变过程中出现了很多优秀的编程思想,本文会带领大家探讨 CSS 模块化的演变历程。 CSS 预处理器 CSS 预处理器是什
初级前端和高级前端有什么差别?在我看来,初级前端关注点在完成功能,高级前端能在完成功能的基础上,做的又好又快。做的好,就是代码质量高,做的快就是开发效率高。
在你的站点上动态渲染任意的 HTML 是非常危险的,因为它很容易导致 [XSS 攻击]。请只对可信内容使用 HTML 插值,绝不要将用户提供的内容作为插值
以下是 CSS Guidelines 中的一个示例,这个示例展示了一个问题:除了写这段代码的人,没有人知道这段代码是干什么的。
本文首发于政采云前端团队博客:编写高质量可维护的代码:优雅命名 https://www.zoo.team/article/good-name
好久没更新了,最近配置json文件的时候发现以前用的excel转json转换器不好用了,上网找了几个都不能满足需求,于是自己用python写了一个。工具不复杂,使用简单,但能满足几乎所有excel转json的要求了,包括多层嵌套,每一层定制为列表或者字典的输出格式,复杂单元格的定制。 转载请注明出处:https://blog.csdn.net/ylbs110/article/details/82755822
在讲正文之前,看到了一篇「九边」大佬写的<笨功夫是普通人最后的依靠>文章. 其中有一些文字很打动我. 然后,秉承着「独乐乐不如众乐乐」的想法,给大家分享出来. 以下是我认为最好的一段文字,如果想看全文,可以搜索文章名字进行查阅.
在本规范中,以双下划线 __ 来作为块和元素的间隔,以单下划线 _ 来作为块和修饰器 或 元素和修饰器 的间隔,以中划线 - 来作为 块|元素|修饰器 名称中多个单词的间隔
引用 文章 Let’s Define Exactly What Atomic CSS is 中定义:
一些使用过他的程序员大呼真香,而另一些程序员一听到他宣扬的「原子化CSS」理念就表示不能接受。
PHP中对于正则处理文本提供了两种方式,一种是PCRE方式(PCRE库是一个实现了与perl 5在语法和语义上略有差异(详见下文)的正则表达式模式匹配功能的函数集. 当前的实现对应于perl 5.005.);另一个是POSIX方式。
本文翻译自Zell的博客——【Writing modular CSS (Part 2) — Namespace】,原文地址:https://zellwk.com/blog/css-architectu
CSS Module 在打包的时候会将类名转换成带有hash值的新类名,根据命名规矩,从而杜绝css类名冲突的问题。
1.采用字面量的写法新建的正则表达式对象在代码编译时就会生成,是平常开发中常用的方式;
前端工程师最常见且最具挑战性的问题之一是 CSS 命名约定。随着 Block Element Modifier(BEM)方法的流行,许多人习惯于按照一种可维护的模式组织他们的样式。
Vue.js 为 v-on 提供了事件修饰符来处理 DOM 事件细节,如:event.preventDefault() 或 event.stopPropagation()。
在事件方法中,默认第一个参数是特殊变量$event,不管在模板中有没有通过greet($event)显式传递。
一、基本用法 你可以用 v-model 指令在表单 <input> 及 <textarea> 元素上创建双向数据绑定。 但 v-model 本质上不过是语法糖。它负责监听用户的输入事件以更新数据,并对一些极端场景进行一些特殊处理。 v-model 会忽略所有表单元素的 value、checked、selected 特性的初始值而总是将 Vue 实例的数据作为数据来源。你应该通过 JavaScript 在组件的 data 选项中声明初始值。 一组代码,看完text、textarea、radio、checkbo
指令就是在模板中出现的特殊标记,通常带v-前缀,指令会让处理模板的库知道要对相应的DOM元素进行一些对应的处理。
一般js监听键盘事件,例如keyup,无论用户是按下哪个键,例如a/b/c,事件函数都会触发。vue为了简化开发,对键盘事件、鼠标事件,提供了修饰符,方便只在用户按下某个特定键值时触发函数。
领取专属 10元无门槛券
手把手带您无忧上云