你也许听说过不下100 次了。因为在CSS中默认都是全局的申明。如果你是个C的程序员你知道全局变量是糟糕的。同时不管你是什么程序员,你该了解独立及可组合的模块是一个可维护系统的关键所在。
让我们开门见山:编写优秀的 CSS 代码是件十分痛苦的事情。很多开发人员都不想做 CSS 开发。你让我干什么都行,但是 CSS 还是算了吧。
最近老大在维护别人的代码时,发现我们团队写的样式各有种的想法及风格,这在后续维护会增加一定的难度,所以老大决定统一样式的会名规范,所以就安排我去调研及实践,下面是我调研的结果。
以前看过一些CSS的编码规范,也照着规范编写代码,但是还是觉得自己的CSS编码风格不是很好,在平时开发中使用各个知名的组件库的时候,发现现在挺多组件库都是BEM的命名风格了,于是找了比较知名的element饿了么前端的组件库的源码,想从看饿了么组件库的代码入手,学习学习大厂的的CSS BEM规范代码的书写风格。
BEM的关键是,可以获得更多的描述和更加清晰的结构,从其名字可以知道某个标记的含义。于是,通过查看 HTML 代码中的 class 属性,就能知道元素之间的关联。
SASS是一种预处理器及样式表语言,由它们自己的工具或模块捆绑器(如webpack)编译成CSS。它有几个可以用来使CSS整洁和可重用的功能,例如变量,嵌套规则,mixin,函数等。
这句话你之前可能听过100次了。 原因是CSS中的一切都默认为全局的。如果你是一个C程序员你就知道全局变量不好。如果你是任何一种程序员,你都知道隔离和可组合的模块是构建可维护系统的关键。
你有两年以上的前端开发经验吗?你会用 Sass 和 Autoprefixer 等高级的CSS辅助技能吗?你的 JavaScript 知识是否融汇贯通,你是否喜欢使用 Gulp , npm 和 jQue
什么是css模块化? 为了理解css模块化思想,我们首先了解下,什么是模块化,在百度百科上的解释是,在系统的结构中,模块是可组合、分解和更换的单元。模块化是一种处理复杂系统分解成为更好的可管理模块的方式。它可以通过在不同组件设定不同的功能,把一个问题分解成多个小的独立、互相作用的组件,来处理复杂、大型的软件。看完模块化,是不是有种拼图的即视感,可以把大图分成各个小图,然后把小图拼成大图,分与合的艺术感。那么css模块化思想,也就是在css编写环境中,用上模块化的思想,把一个大的项目,分解成独立的组件,不同的
以webpack4.0版本为例来演示CSS模块的处理方式,需要用到的插件及功能如下:
前端工程师最常见且最具挑战性的问题之一是 CSS 命名约定。随着 Block Element Modifier(BEM)方法的流行,许多人习惯于按照一种可维护的模式组织他们的样式。
在规则声明中,“选择器” 负责选取 DOM 树中的元素,这些元素将被定义的属性所修饰。选择器可以匹配 HTML 元素,也可以匹配一个元素的类名、ID, 或者元素拥有的属性。以下是选择器的例子:
作者|jaychen 原文|https://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651552192&idx=1&sn=5342d6ea6d77
你有两年以上的前端开发经验吗?你会用 Sass 和 Autoprefixer 等高级的CSS辅助技能吗?你的 JavaScript 知识是否融汇贯通,你是否喜欢使用 Gulp , npm 和 jQuery ?如果是这样,根据 Ashley Nolan 的前端问卷调查,你是一个典型的前端开发工程师。 谎言,该死的谎言,统计数字和调查问卷 愚人码头注:谎言,该死的谎言,统计数字(英文:Lies, damned lies, and statistics),是一句著名的西方谚语。主要描述数字的说服能力,特别是用来讽
译者 | 愚人码头 链接 | http://www.css88.com/archives/7175 简介 你有两年以上的前端开发经验吗?你会用 Sass 和 Autoprefixer 等高级的CSS辅助技能吗?你的 JavaScript 知识是否融汇贯通,你是否喜欢使用 Gulp , npm 和 jQuery ?如果是这样,根据 Ashley Nolan 的前端问卷调查,你是一个典型的前端开发工程师。 谎言,该死的谎言,统计数字和调查问卷 作者注:谎言,该死的谎言,统计数字(英文:Lies, damned
本文翻译自Zell的博客——【Writing modular CSS (Part 1) — BEM】,原文地址:https://zellwk.com/blog/css-architecture-1/
直白的说:编写优秀的 css 代码可能是很痛苦的。很多程序员都不想从事 CSS 开发—我可以做任何事情,除了css以外。
1.I want to use 基于的数据和功能都在Can I use网站上列出来了,这个app可以给你选择很多前端开发功能的能力和获得全世界用户看到你选择的功能的人数的百分比。 2. Regulex
最近在开发一个组件库,选择了BEM作为css的组织形式,主要考虑了以下三个方面的优势:
| 导语 CSS 做为 Web 技术的基石,从一开始就展示出了巨大的潜力。它的入门非常简单,你只需为元素定义好样式属性和值。然而 CSS 特性随着规范的升级越来越丰富,前端业务复杂性的增加也使得工程愈加庞大。在大型 Web 应用里面,CSS 的组织是一件复杂和凌乱的事情,你更改页面上任意一个元素的一行CSS样式都有可能影响到其他页面上的元素。 由于 CSS 本身并不编程特性,因此在演变过程中出现了很多优秀的编程思想,本文会带领大家探讨 CSS 模块化的演变历程。 CSS 预处理器 CSS 预处理器是什
上文「前端工程四部曲」模块化的前世今生(上)中我们主要介绍了JS模块化相关的知识,对于JS模块化,相信很多人都不陌生,但说起CSS模块化,可能大家就没有这么清晰了。大部分人都会重点关注JS而忽略CSS,但CSS也是前端三剑客不可或缺的一部分,在编写CSS的时候,绝大多数人都是比较随意的,所以会经常造成一些开发痛点。接下来这篇文章我们就来简单聊一聊 CSS 模块化。
在每个 Web 应用程序中,样式化非常重要,因为样式使其对用户非常有吸引力,并为用户提供良好的体验。在 React 中有不同的方法来实现这一点。
无论编写什么文档,我们都应当维持统一的风格,包括统一的注释、统一的语法与统一的命名规范。
或者可以这么说,CSS Modules为我们解决了什么痛点。针对以往我写网页样式的经验,具体来说可以归纳为以下几点:
一旦样式多起来,这个问题就会变得越发严重,其实归根结底,就是类名冲突不好解决的问题。
本年的结果有超过3000多人参加调用,共有27个问题,问题覆盖前端工具以及思想方法论。在此,非常感谢各位参与的朋友花费时间来回答这些问题。组织和编写本次调查结果是有点困难的,因为我们家里多一个组员——我的女儿(因此调查结果有点延迟,非常抱歉!)
CSS 的全局性 相当长一段时间 CSS 总是在页面上作为一个全局的存在,以前这个『特性』影响还不算很大,命名上注意一点,比如使用 BEM 也能一定程度上解决问题。 但是随着 web 组件化的需求越来越强烈,CSS 的这种特性开始成为束缚开发者自由飞翔的绳索,每一个 CSS 类名都有可能产生意想不到的冲突,或者被各个组件覆盖来覆盖去,每当修改一个组件时,我们必须谨小慎微,注意是否会在全局环境下产生冲突。 更严重的是,组件化的背景下,JS + 模板 + CSS 才能称为一个完整的组件,每个组件如果单独引用一个
在讲正文之前,看到了一篇「九边」大佬写的<笨功夫是普通人最后的依靠>文章. 其中有一些文字很打动我. 然后,秉承着「独乐乐不如众乐乐」的想法,给大家分享出来. 以下是我认为最好的一段文字,如果想看全文,可以搜索文章名字进行查阅.
看了《 less 的 & 详解 https://www.jianshu.com/p/127b0974cfc3》,对于此文再做一别补充
在本规范中,以双下划线 __ 来作为块和元素的间隔,以单下划线 _ 来作为块和修饰器 或 元素和修饰器 的间隔,以中划线 - 来作为 块|元素|修饰器 名称中多个单词的间隔
继 精读《请停止 css-in-js 的行为》 这篇文章之后,我们又读了一篇抵制 css-in-js 的文章,虽然大部分观点都有道理,但部分存在可商榷之处,让我们分析一下这篇文章,了解 css 还做了哪些努力,以及 css-in-js 会如何发展。
本文由 nzbin 翻译,黄利民 校稿。未经许可,禁止转载! 英文出处:Loops in CSS Preprocessors 发表地址:http://web.jobbole.com/91016/ 如果你看过老的科幻电影,你一定知道循环的强大之处。给你的机器人克星设置无限循环,它就会爆炸,然后机器人灰飞烟灭了。 预处理器的循环并不会在太空中发生剧烈爆炸(我希望),但是它有利于书写 DRY CSS(译者注:详细介绍可以参考这篇文章 http://vanseodesign.com/css/dry-princ
最流行的JS库和框架 主要看绿色柱和橙色柱即可,绿色 相当于 知名度,橙色 相当于 使用程度。 使用最多的库和框架: jquery,underscore,lodash,angular1,react 他
正如我们今天所知,CSS语言是web的一个重要组成部分。它使我们有能力绘制元素在屏幕、网页或其他媒体中的展示方式。
本文来源于全球的5254份前端工具使用的调查报告,期望通过本文能够帮助大家更好的了解最新的前端开发工具趋势。
我听说很多开发者厌恶 CSS。而在我的经验中,这往往是由于他们并没有花时间来学习 CSS。 CSS 算不上是最优美的『语言』,但迄今二十多年来,它都是美化 web 举足轻重的工具。从这点来说,也还算不
简介 CSS-in-JS是什么,看到这个词就能大概猜到是在JavaScript里写CSS,那为什么要在JavaScript里写CSS呢,像之前一样写在css文件里哪里不好么? (图片来自:http:/
在前端开发领域,随着项目规模的扩大,CSS管理变得日益复杂。为了提高代码的可维护性、可重用性及避免全局命名冲突,CSS Modules与预处理器(如Sass、Less)应运而生。本文将深入浅出地介绍这两项技术的基本概念、优势、常见问题、易错点以及如何避免这些问题,同时提供实用的代码示例,帮助开发者更好地掌握这些进阶工具。
我还记得当我刚开始学习前端开发时,我被大量的技术文章淹没,当时让我非常困惑的是:我究竟需要学多少知识才算足够,我甚至不知道从哪里开始。 这篇指南会告诉你学习前端开发的方向,它会提供一些过去我在学习中遇
以下是 CSS Guidelines 中的一个示例,这个示例展示了一个问题:除了写这段代码的人,没有人知道这段代码是干什么的。
本文翻译自Zell的博客——【Writing modular CSS (Part 2) — Namespace】,原文地址:https://zellwk.com/blog/css-architectu
我还记得当我刚开始学习前端开发时,我被大量的技术文章淹没,当时让我非常困惑的是:我究竟需要学多少知识才算足够,我甚至不知道从哪里开始。 这篇指南会告诉你学习前端开发的方向,它会提供一些过去我在学习中遇到的非常有效的学习资源,并伴随着我的一些注解。 为了让这篇指南更容易消化,我将它分成了两部分,第一部分主要讲HTML和CSS的开发接口,第二部分主要讲Javascript,框架,以及设计模式,如果你对HTML和CSS很熟悉,你可以直接跳到第二部分,那里全都是Javascript。 HTML和CSS基础 在前端
由于 Create React App 脚手架创建的项目过于简陋,没有集成诸如 eslint 等工具,致使每次在开发 react 项目的时候,就要颇费一番周折。针对这种不便,我搞了这个模板仓库。
把你的注意力从方法和技术的洪流中移开一会,你就可能会错过什么! 上周我遇到我的一个前端开发朋友,他很兴奋地跟我谈论他使用的一些新工具。其中最有意思的是使用 Grunt 来编译 SCSS。
成为前端工程师,第一步应该是学习HTML/CSS/JavaScript,这是基础。
之前使用过 Vue 开发后台、中台项目,也做过移动端 H5,弄过一点小的前端架构。每做一个项目都会收获了不一样的经验和理解。下面我把这些点点滴滴的经验总结下来,做一个系列的文章分享和阶段性的总结。
CSS 资源列表,内容包括:CSS预处理器、框架、CSS结构、代码风格指南、命名习惯、播客、演讲视频、大网站的 CSS 开发经验等等。 预处理器 更快地编译 CSS GCSS:一个用GO语言编写的CSS预处理器。官网 LESS:向下兼容CSS并为当前的CSS增加额外的功能。官网 Myth:只用写纯CSS而不用担心浏览器加载缓慢。官网 PCSS:一个用Python语言编写的CSS预处理器。官网 PostCSS:通过JS插件来转换CSS。PostCSS Sass:成熟、稳定且强力的专业CSS扩展语言。官网 St
在“学习爱BEM”中,我要表明我对BEM语法的新感受。 我很高兴地报告说,经过2年以上,我仍然对我的选择感到满意。
领取专属 10元无门槛券
手把手带您无忧上云