Peergrade.io处理CSS的方式 规则1: 使用前缀 (class类名) 在Peergrade.io中我们在所有样式名中使用前缀 .pg。 在你的CSS代码中如果不使用前缀可能会带来些麻烦。...接着你可能在你的样式中随处可见类似 .prev, .next和.separator等的类名, 如果你不用前缀它们可能会和你已有的类名产生潜在的冲突。...同样,可以在父元素内的子元素中独立定义样式 - 这并不会受到你在前一阶段Sass这层已经定义好的样式的影响。...你可以通过subtle 和 brittle ways 在CSS中通过做选择器的嵌套来绑定你的HTML结构。...嵌套去创建BEM类名命名方式。
Peergrade.io 处理CSS的方式 法则一:(给类名)加上前缀 在Peergrade.io我们在所有类名中用了前缀 .pg 。在CSS代码库里不使用前缀是自找麻烦。...法则二:避免使用CSS选择器嵌套 在Peergrade.io我们使用 Sass。...法则三:采用BEM命名来开发组件 在构建可隔离组件时,尽可能采用BEM命名方案给类命名。...Sass嵌套为我们创建BEM类名。...为了更好地理解类似BEM的命名方式,前往查看Harry Roberts的CSS指南的类BEM命名部分。(需要提到的是,我们发现Harry实际上建立了一套跟我们类似的命名方案。)
特别是当您遵循BEM体系架构 时特别有用,因为Sass与它的体系结构非常兼容,因此他们在文档中经常提到它。 它是一种更优雅、更酷的UI设计方式。使用Sass构建CSS也更加容易。...现在如果你用sass来做这件事,它看起来是这样的: 上面的示例展示了SASS如何通过使用(&)将CSS选择器串联在({})中来嵌套几个选择器。...如果您使用的是BEM体系结构,那么您就节省了一些需要重复输入CSS类和选择器来遵循该体系结构时间,因为SASS在后台已经帮您生成了完整的CSS了。...您可以使用Mixins将CSS代码段重用到其他选择器 您不仅可以轻松地用更少的代码嵌套CSS选择器,而且可以重用一些代码片段来解决整个UI中的某些CSS问题。 Mixins可以帮助您做到这一点。...这样,您可以避免在HTML元素中过多使用非语义的类。 举个例子,您在将UI居中对齐时遇到了问题,而且您不想在每个CSS选择器中都写一遍一模一样的代码。在这种情况下,您可以使用Mixins来解决问题。
最重要的是,Tailwind CSS 突然出现,通过它的实用至上的 CSS 的类名使用,迫使我们重新考虑传统的语义类名称的设计。...但是 Grid 在今年的调查中可以说上升的趋势很快。 还有像 Subgrid[11] 和 Multi-Column Layout[12] 你可能不熟悉。...SaSS 依旧是大哥大,这里可以提一下 libsass 已经弃用,已经使用了 dart-sass,社区各个正在对齐中,以后再也不用担心 node-sass 安装编译出错了。...著名的框架 Material UI [15] (实现了 Google 的 Material Design)就是采用的这样的模式。...UI : https://github.com/mui-org/material-ui
在明确风格的情况下,可以先把此风格的基色确定下来,无论是抽成 sass 变量还是 js 变量,都具有可复用性。...比如我们抽出一个公共样式包,业务代码中的色值都从此样式包中引用,那么在不同的环境下,公共样式包可能通过所在宿主环境的判断,返回给业务代码不同的色值,甚至与宿主环境配合,从宿主环境拿到注入的颜色,实现一套代码在运行时轻松换肤...我觉得这是一种误解,在 css-in-js 模式中,通过全局合理的设计,使用 js 文件存放颜色变量、公共方法、可能会复用的 css 代码块,其复用能力远大于 sass。...命名规则 对这 5 种类别,在命名时要加上对应前缀,分别是: Base 属于基础元素,比如 div p,不需要命名 Layout 使用 .l- 或 .layout-前缀 Module 使用模块名命名,比如文章区块就叫...Components – 对组件样式的定义,一个 UI 元素基本由 Objects 与 Components 组成 Utilities – 工具类,比如 .hidden ITCSS 的分层是非常有借鉴意义的
官网 PCSS:一个用Python语言编写的CSS预处理器。官网 PostCSS:通过JS插件来转换CSS。PostCSS Sass:成熟、稳定且强力的专业CSS扩展语言。...强力的、可扩展的、基于Sass的、采用BEM命名的面向对象CSS框架 官网 Foundation:一个高级响应式前端框架。...官网 Material Design Lite:很好的用于制作Material Design风格网站的框架。官网 Materialize:基于Material Design的现代响应式前端框架。...官网 Semantic UI:使用人性化html的强力框架。官网 Skeleton:一个超简单的响应式模板。官网 UIkit:适用于手机、平板以及电脑端的栅格系统。...Maxime Thirouin:前端工程师,自由职业者,UI/UX开发者。 Mark Otto:在GitHub和Bootstrap工作,曾就职于Twitter,超级书呆子。
CSS 代码组织方案:BEM 我曾经无数次给我的css类名提供我能想到的全部术语,你懂的,比如这些命名:.button .page-1 .page-2 。我经常不知道如何进行命名。...示例:.post--important,.post__btn--disabled 注意点 当你使用 BEM 时,你的命名只有 class 类名并且只使用 class 类名,没有 id ,没有标签,就只使用...class 类名。...这种情况请使用具体的 class 类名来替代。 是的,你的 HTML 文件将会因为 BEM 变得臃肿,但比起BEM带来的好处,这只是一个无足轻重的小缺点。 举个例子 这是给你的练习。...它是一个工具,可以解析 CSS 并使用 can I use 中的值将浏览器供应商前缀添加到 css 规则中。
它也提供一种选择,即通过使用一对iframe标签来把输出的结果嵌入到你想要嵌入的地方。 3....在视频里看看效果,看看主要事件的效果和属性值的变化。” 5. Excess XSS(攻克XSS) XSS介绍链接地址: http://baike.sogou.com/v625072.htm?...Get BEM 它是一个综合的站点,旨在推广和教导开发者使用流行的BEM CSS方法学。...,是因为在制作一个动态的UI元素时,有一些重要的好的经验可以应用到自己的项目上。...The CSS at… 如果你想用一些大神制作的CSS样式指南充实自己,那么在本站点中,Chris Coyier已经把去年几个月里不同的帖子根据统计趋势排了名,并且把它们的相关信息和链接都放到了一张表格里
当 JSS 将 JSON 表示形式编译为 CSS 时,默认情况下会生成唯一的类名。 动态浏览器私有化前缀,使用 CSS-in-JS 可以避免臃肿的 CSS 代码。...UI 库 material-ui 是笔者很早关注的一个 material design 的一个开源 UI 组件库,用过 ReactJS 的开发同学可能有了解过,记得一开始官方采用的是内联样式,后续研发了自己的一套...CSS-in-JS 的实现方案,单独发布了 Material-UI 组件中使用的样式方案 —— @material-ui/styles。...现在也可以使用 “Constructable Stylesheets” 编辑在 JavaScript 中动态添加的样式。 可构造样式表是使用 Shadow DOM 时创建和修改样式的一种新的方法。...笔者因早前开发过自己的一套 React UI 库 React-UWP,也基于这套 UI 库做了 CSS-in-JS 的方案,在过去两年中在开发中虽然用的组件不是很多,但是用了 CSS-in-JS 来做整体的样式解决方案
学习如何轻松构建可伸缩的 React 应用程序:样式 # 组件样式 在每个 Web 应用程序中,样式化非常重要,因为样式使其对用户非常有吸引力,并为用户提供良好的体验。...在 React 中有不同的方法来实现这一点。 # 样式化类型 在 React 和网站或 Web 应用程序中,有不同的样式化应用程序的方式。...这里将使用示例来介绍其中一些: 内联 CSS 外部/引用 CSS Sass Bootstrap styled-components Tailwind # 内联 CSS 内联 CSS 是直接在 HTML...# Sass Sass(Synthetically Awesome Style Sheet)是一种预处理器,具有扩展名 .scss,有一些很棒的功能,例如: Mixins(混入) Inheritance...Tailwind CSS 是一种实用型优先的框架,使用一种称为“原子类”的方法,通过提供大量的预定义类来帮助构建定制的、响应式的 UI 组件和页面。
文中有多处学习资料链接,大家可以通过访问原文来获取 这个 React 学习路线的思维导图来源自 Adam Gołąb 的 react-developer-roadmap 。...截止至本文发布时,原仓库已经有了中文版,大家可自行选择查阅,由于是 roadmap 的聚合类列表,所以翻译方面差异不会很大。 学习路线图 ?...·使用 grid 和 flexbox 为页面布局 iii.JS 基础 ·熟悉语法 ·学习 DOM 的基础操作 ·学习 JS 中的经典机制....别害怕使用 Google Google 的强力搜索 iv.熟悉终端,配置 shell (bash、zsh、fish) v.读一些数据结构和算法的书 vi.读一些设计模式的书 3...UI、Material Design Lite ·Bulma ·Semantic UI CSS 架构 ·BEM ·CSS Modules
一般来说,它们基于 CSS 扩展了一套属于自己的 DSL,来解决我们书写 CSS 时难以解决的问题: 语法不够强大,比如无法嵌套书写导致模块化开发中需要书写很多重复的选择器 没有变量和合理的样式复用机制...BEM BEM 即Block Element Modifier;类名命名规则: Block__Element—Modifier Block 所属组件名称 Element 组件内元素名称 Modifier...BEM通过简单的块、元素、修饰符的约束规则确保类名的唯一,同时将类选择器的语义化提升了一个新的高度。...CSS IN JS 这个理念是由 Facebook 工程师 vjeux 在一次分享中提出的,用来解决在 React 中使用 CSS 的问题。...从开发体验上来看,这种做法让开发者不必在类名的命名上小心翼翼,直接使用随机编译生成唯一标识即可。
如果你想了解更多信息,请查看相应的文档 戳这里。文档写得很好,且易于理解。 2. 组织 CSS 代码:BEM 方法论 我记不清曾经多少次在CSS类中使用包揽一切的名字了。...BEM 的时候,你可以用且只能用类来命名。...它的值可以是:嵌套、展开、紧凑、压缩。我们将使用它来构建你的CSS文件。 如果你是一个好奇心很重的人(我希望如此,因为开发人员应该好奇!)那么,请点击这里查看 完整的文档。...它是一个工具(尤其是postcss插件),它可以解析CSS,并利用这些值(https://caniuse.com/)将提供商的前缀加入到CSS规则中。...这就是为什么我们需要自动前缀来帮助我们的CSS代码获得浏览器的兼容,而不用增加额外的复杂性。 那么我们如何用更聪明地构建CSS呢? 将所有的SCSS文件编译成一个主CSS文件。
选择器可以匹配 HTML 元素,也可以匹配一个元素的类名、ID, 或者元素拥有的属性。...类名建议使用破折号代替驼峰法。如果你使用 BEM,也可以使用下划线(参见下面的 OOCSS 和 BEM)。 不要使用 ID 选择器。 在一个规则声明中应用了多个选择器时,每个选择器独占一行。...(在 Sass 中是 //) 代替块注释。...”,是一种用于 HTML 和 CSS 类名的命名约定。...想要了解关于这个主题的更多内容,参见 CSS Wizardry 的文章,文章中有关于如何处理优先级的内容。 JavaScript 钩子 避免在 CSS 和 JavaScript 中绑定相同的类。
背景 最近老大在维护别人的代码时,发现我们团队写的样式各有种的想法及风格,这在后续维护会增加一定的难度,所以老大决定统一样式的会名规范,所以就安排我去调研及实践,下面是我调研的结果。...在 css 定义时,也必须依靠层级选择器来限定约束作用域,以避免跨组件的样式污染。...这有悖BEM命名规范,BEM的命名中只包含三个部分,元素名只占其中一部分,所以不能出现多个元素名的情况。这样的约定可以防止当层级很深命名过长的问题。...,上面在 less 或 sass 中可以改成如下结构: .card{ // 省略......{vue,css,less,sass,scss}": "stylelint --fix" }, } 这里涉及到 husky 的使用,如果不懂的,可以自行谷歌了解理详细的信息。
的渲染规则可以参看这篇文章探究 CSS 解析原理 会带来代码的冗余 由于CSS不能使用类似于js的模块化的功能,可能你在一个css文件中写了一个公共的样式类,而你在另外一个css也需要这样一个样式,这时候...,因此确保了类名的唯一性,我们再看看浏览器中inspector中的样式应用,如下: ?...全局作用域 要想一个类名不需要被装换,那么可以使用:global(className)来进行包装,这样的类不会被转换,会被原样输出,下面我们修改global.css /* global.css */ *...就可以发现.container类没有被转换 定义哈希类名 CSS Modules默认是以[hash:base64]来进行类名转换的,可辨识度不高,因此我们需要自定义 开启自定义,可以使用一个配置参数localIdentName...类名组合 如果我们实现类似于Sass的继承功能,我们需要怎么做呢?
解决类名冲突 一些第三方机构提出了一些方案来解决该问题,常见的解决方案如下: 「命名约定」 就是提供一种命名的标准,来解决冲突,常见的标准有: BEM OOCSS AMCSS SMACSS 其他 我主要以...等)搭建工程 构建工具允许将css样式切分为更加精细的模块 同JS的变量一样,每个css模块文件中难以出现冲突的类名,冲突的类名往往发生在不同的css模块文件中 只需要保证构建工具在合并样式代码后不会出现类名冲突即可...由于hash值是根据模块路径和类名生成的,因此,不同的css模块,哪怕具有相同的类名,转换后的hash值也不一样。...为了解决这个问题,css-loader会导出原类名和最终类名的对应关系,该关系是通过一个对象描述的 这样一来,我们就可以在js代码中获取到css模块导出的结果,从而应用类名了 style-loader...中书写属性集,类似于LESS中的混入,可以利用CSS的新语法定义一个CSS代码片段,然后在需要的时候应用它。
无法共享变量 复杂组件要使用 JS 和 CSS 来共同处理样式,就会造成有些变量在 JS 和 CSS 中冗余,Sass/PostCSS/CSS 等都不提供跨 JS 和 CSS 共享变量这种能力。..., } CSS Modules 对 CSS 中的 class 名都做了处理,使用对象来保存原 class 和混淆后 class 的对应关系。...BEM 把样式名分为 3 个级别,分别是: Block:对应模块名,如 Dialog Element:对应模块中的节点名 Confirm Button Modifier:对应节点相关的状态,如 disabled...没问题,这些同名 class 编译后虽然可能是随机码,但仍是同名的。 如果我在 style 文件中使用了 id 选择器,伪类,标签选择器等呢?...CSS Modules 结合 React 实践 在 className 处直接使用 css 中 class 名即可。
这篇博客主要是我使用vscode过程中的插件汇总,使用了这么长时间,总想有个总结,也方便日后查看,这里我将我使用的插件分为基础、框架、工具三个类型。...框架插件 这部分插件主要是和各个框架有关的插件,比如jquery,bootstrap,vue等ui框架,html模板引擎和js框架。...插件地址 if for 插值 … jQuery Code Snippets 虽然jQuery诞生于2006年,距今已有13年历史,但是还是有很多人在使用,所以也推荐一下。...插件地址 工具插件 这部分插件主要是日常工作过程中的一些工程化编译,构建还有辅助等工具,辅助编程。...插件地址 Sass Lint 这个是和sass配套的一个插件,检查sass语法是否正确,插件地址 vscode-fileheader 这个插件可以在文档顶部插入一段说明注释,非常便于你查看当日写了哪些内容
$data).innerHTML; // 修改content值,观察组件中要渲染html格式字符串的位置,我们还是用v-html来绑定 this.content...格式的字符串真正渲染前,我们使用一个组件实例将其渲染处理一下,将其内部的插值表达式、模板处理完之后,在渲染。...如果你希望针对 v-html 的内容设置带作用域的 CSS,你可以替换为 CSS Modules 或用一个额外的全局 元素手动设置类似 BEM 的作用域策略。...a[data-v-f3f3eg9] .b{/* ... */} 但是这里需要注意,当你的vue项目使用less或者sass的时候,>>>这个玩意可能会失效,我们用/deep/来代替,代码如下: .a {...以上便是在使用vue开发时使用v-html需要注意的地方。
领取专属 10元无门槛券
手把手带您无忧上云