Css模块 CSS 的隔离主要有两类方案,一类是运行时的通过命名区分,一类是编译时的自动转换 CSS,添加上模块唯一标识。...但是这种方案毕竟不是强制的,还是有样式冲突的隐患。 2.编译时 编译时的方案有两种,一种是 scoped,一种是 css modules(还有Css in Js)。...scoped 是 vue-loader 支持的方案,它是通过编译的方式在元素上添加了 data-xxx 的属性,然后给 css 选择器加上[data-xxx] 的属性选择器的方式实现 css 的样式隔离...css-modules 是 css-loader 支持的方案,在 vue、react 中都可以用,它是通过编译的方式修改选择器名字为全局唯一的方式来实现 css 的样式隔离。...scoped 的方案是添加的 data-xxx 属性选择器,因为 data-xx 是编译时自动生成和添加的,开发者感受不到。
你只需添加样式规则,就可以对网站进行样式设置了,对吗?对于只需要几个CSS文件的小型网站,情况可能就是这样。但是在大型应用程序中,样式可能会迅速失控。你如何使它们易于管理?...现在,有许多轻量级的替代健壮框架。通常,你不会使用框架中的每个选择器,因此你的软件包将包含无效代码。 如果仅对按钮样式使用,则将样式外包给你的CSS文件,然后删除其余样式。...浏览器自动为你的规则添加前缀 CSS中有一些非标准或实验性功能的前缀。...你可以使用PostCSS来自动为CSS规则添加前缀,因此你不必担心会遗漏主要的浏览器。他们使用“ 我可以使用”中的值,因此它始终是最新的。 另一个很棒的后处理器是autoprefixer。...以移动设备为先的方法意味着你首先要开始为小屏幕设备编写CSS并从那里开始构建。这也称为渐进增强。 这将确保你主要添加额外的规则来迎合大屏幕设备,而不是重写现有的CSS规则。
下面我们来一起学习下一些我觉得值得关注的内容吧。 CSS - View Transitions API WebKit 加入了对 View Transitions API 的支持。...- 样式查询 WebKit 增加了对样式查询(Style Queries)的支持,可以在测试 CSS 自定义属性时使用。...CSS - 背景过滤器 在 Safari 9.0 中发布的背景滤镜(backdrop filter)为我们提供了一种方式,可以对特定元素后的内容应用图像效果。...当你在属性名称前添加 -webkit-backdrop-filter前缀时,它才可以使用。 现在,开始于 Safari 18 beta,我们不再需要该前缀了。 现在它在各大浏览器的兼容性都很好。...- 混合内容策略 新版的 WebKit 会通过升级混合内容设置中的被动子资源请求,为所有图像、视频和音频添加了对安全 HTTPS 的支持。
本文来自设计达人网站,Jeff 看到该文感觉非常有必要学习分享,so,转载在这里,感谢原作者——写了这么久的CSS,但大部分前端er都没有按照良好的CSS书写规范来写CSS代码,这样会影响代码的阅读体验...连字符CSS选择器命名规范 1.长名称或词组可以使用中横线来为选择器命名。 2.不能用“_”下划线来命名CSS选择器,为什么呢?...不要随意使用id id在JS是唯一的,不能多次使用,而使用class类选择器却可以重复使用,另外id的优先级优先与class,所以id应该按需使用,而不能滥用。 ? ?...为选择器添加状态前缀 有时候可以给选择器添加一个表示状态的前缀,全语义更明了,比如下图是添加了“.is-”前缀。 ? ?...CSS样式表文件命名 主要的 master.css 模块 module.css 基本共用 base.css 布局、版面 layout.css 主题 themes.css 专栏 columns.css
CSS 的介绍 CSS(层叠样式表)是一种用来为结构化文档添加样式的计算机语言,由 W3C 定义和维护。目前最新版本是 CSS2.1,为 W3C 的推荐标准。...Houdini是一组API,它们使开发人员可以直接访问CSS 对象模型 (CSSOM),使开发人员可以编写浏览器可以解析为CSS的代码,从而创建新的CSS功能,而无需等待它们在浏览器中本地实现。...这些库大部分的动态修改样式主要使用这几种方式: 1)CSS 样式表 Scoped CSS:通过每个组件添加 CSS 样式表,但是添加了 scoped 的作用域 Global CSS:在 HTML 全局添加修改样式表的...例如,(CSSOM API)h1添加的样式 CSSStyleSheet以前不可编辑。现在可以在“Styles”窗格中进行编辑: ?...展望未来 CSS 设计的初衷是为了全局化的控制样式,通过选择器去扩展丰富实际的页面渲染,而 CSS-in-JS 并不是排斥 CSS 样式,而是说“样式”在现代化的组件颗粒化的发展下,使用 CSS-in-JS
如果你只对按钮使用样式,可以将它们加入到你的 CSS 文件,并去掉其余的样式。另外,你可以通过使用 DevTools 的 coverage 标识未使用的 CSS 规则。 ?...从上面的例子可以看出,表示有 98% 的 CSS 是未使用的。需要注意的是,事实并非如此,一些 CSS 样式只有在用户在网页上产生交互后才会被应用。移动设备未使用的样式也会标为为使用的字节。...3.3 自动为规则添加厂商前缀 一些非标准的或试验性的特性在 CSS 中需要添加前缀。...最流行的 post-processors 之一是 PostCss。 你可以使用 PostCss 来自动为你的 CSS 打上前缀,所以你不用担心遗漏主流浏览器。...这确保你可以添加更多额外的规则来满足大屏幕设备的需求,而不是重写现有的 CSS 规则。这可以减少你最终使用的规则数。 你怎么知道你的媒体是不是先写的移动端?
2.伪类和伪元素的概念 2.1 伪类: 伪类用于当已有元素处于某个状态时,为其添加对应的样式,这个状态是根据用户行为而动态变化的。...虽然它和普通的 CSS 类相似,可以为已有的元素添加样式,但是它只有处于 DOM 树无法描述的状态下才能为元素添加样式,所以将其称为伪类。...2.2 伪元素 伪元素用于创建一些不在文档树中的元素,并为其添加样式。 例如,我们可以通过 :before 来在一个元素前增加一些文本,并为这些文本添加样式。...API。...目前,:fullscreen 需要添加前缀才能使用。 !!注意,伪类的名称不区分大小写。
二、选择器是什么 选择器,就是用一种方式把我们想要的那个元素选中。只有把它选中,我们才可以为这个元素添加CSS样式。...选择器的不同,在于选择方式不同,但是它们的最终目的是一样的,那就是把想要的元素选中,然后才可以定义该元素CSS样式。...属性n : 取值n; } 1.元素选择器 元素选择器,就是选中指定的相同的所有元素,然后给相同的元素定义同一个CSS样式。 (2)示例 ① 例1 <!...我们可以为元素设置一个id属性,然后针对设置了这个id的元素定义CSS样式,这就是id 选择器。 (1)#前缀 对于id 选择器,id名前必须加上前缀#。...id选择器示例1.png 3.class 选择器 class 选择器,即类选择器,就是可以对相同的元素 或 不同的元素定义相同的class属性,然后针对拥有同一个class属性的元素进行CSS样式操作
而解决这种问题的最好的办法就是使用某个CSS Reset来为所有的元素设置统一的样式,保证你能在相对统一干净的样式表的基础上开始工作。...譬如,如果你打算为Table的边与单元的边添加样式,可能得到的结果如下: table { width: 600px; border: 1px solid #505050; margin-bottom:...那么我们可以通过设置border-collapse:collapse 来进行处理: 注释格式优化 CSS虽然谈不上一门编程语言但是其仍然需要添加注释以保障整体代码的可读性,只要添加些简单的注释不仅可以方便你更好地组织整个样式表还能够让你的同事或者未来的自己更好地理解...CSS开发中常见的工作之一,不同的浏览器、不同的属性对于前缀的要求也不一样,这就使得我们无法在编码过程中记住所有的前缀规则。...对于CSS的压缩有很多的现行工具: Online tools – CSS Minifier (API included), CSS Compressor Text editor plugins: Sublime
一、目录 一、目录 1 二、制作目的 2 三、CSS编写规范 3 四、补充 9 二、制作目的 1、为提高团队协作效率,便于后台人员添加功能及前端后期优化维护,输出高质量的文档,也为了更好阅读、修改和提高对...style标签定义样式(嵌入式),而由于行内样式与style标签定义的样式优先级比以CSS文件引入样式(外部样式表)优先级要高: 导致无法被以简单的类选择器样式覆盖 导致以js的addClass来添加的简单类选择器样式优先级低而无无法起作用...不便于交接 4)不合理使用CSS选择器(组合、属性选择器)和id选择器 导致无法被以简单的类选择器样式覆盖 导致以js的addClass来添加的简单类选择器样式优先级低而无无法起作用 不便于交接 当然...5、表现与结构分离:CSS样式都应写在CSS文件中,且尽量少用id、组合、属性选择器和行内样式以及style标签样式 为避免在CSS文件使用类选择器和使用js添加类选择器进行样式覆盖时因优先级问题而无法覆盖成功...7)为选择器添加状态前缀 有时候可以给选择器添加一个表示状态的前缀,让语义更明了,比如下图是添加了“.is-”前缀。
而解决这种问题的最好的办法就是使用某个css Reset来为所有的元素设置统一的样式,保证你能在相对统一干净的样式表的基础上开始工作。...譬如,如果你打算为Table的边与单元的边添加样式,可能得到的结果如下: table { width: 600px; border: 1px solid #505050; margin-bottom...12、尽可能使用低优先级的选择器 并不是所有的CSS选择器的优先级都一样,很多初学者在使用CSS选择器的时候都是考虑以新的特性去复写全部的继承特性,不过这一点在某个元素多状态时就麻烦了,譬如下面这个例子...CSS开发中常见的工作之一,不同的浏览器、不同的属性对于前缀的要求也不一样,这就使得我们无法在编码过程中记住所有的前缀规则。...对于CSS的压缩有很多的现行工具: Online tools – CSS Minifier (API included), CSS Compresso Text editor plugins: Sublime
层叠样式表(CSS)是一种强大的样式表语言,可以帮助前端开发人员为简单的网页添加样式。然而,在使用这种样式表语言时,开发人员可能会犯一些错误。这些错误会妨碍开发人员编写高效的代码。...4、不使用CSS重置 不同的浏览器具有各种默认样式,这些样式不同,导致元素的外观不一致。这就是为什么我们必须定义一些样式,以便在其他浏览器上为网页样式提供一致的起点。这些样式被称为“CSS重置”。...: 为元素选择器选择最具体的选择器。...为元素选择器选择最具体的选择器。 使用选择器组合器来选取具有相同样式的元素。 经常学习代码重构(您将能够发现复杂的选择器)。 使用CSS模块来组织代码结构。 避免使用后代选择器。...实现浏览器兼容性代码的一种方法是实施以下操作: 使用供应商前缀:某些CSS属性需要您使用前缀来渲染,无论使用哪种浏览器。
在HTML5中添加了data-*的方式来自定义属性,所谓data-*实际上上就是data-前缀加上自定义的属性名,使用这样的结构可以进行数据存放。...test.dataset.my = 'Byron'; *使用JavaScript操作dataset有两个需要注意的地方 (1) 我们在添加或读取属性的时候需要去掉前缀data-*,像上面的例子我们没有使用...(2) 如果属性名称中还包含连字符(-),需要转成驼峰命名方式,但如果在CSS中使用选择器,我们需要使用连字符格式 如: [data-birth-date...样式表为div添加了一些样式 读取的时候也是通过dataset对象,使用”.”来获取属性,同样需要去掉data-前缀,连字符需要转化为驼峰命名 如: var test = document.getElementById...,特殊就特殊在命名上了,但是dataset内只有带有data-前缀的属性 那么为什么我们还要用data-*呢,一个最大的好处是我们可以把所有自定义属性在dataset对象中统一管理,遍历啊神马的都哦很方便
User Interface) Bootstrap,来自 Twitter,是目前很受欢迎的前端框架。...属性的值 alert($obj.val()); 2.DOM对象和jQuery对象之间的转换 注意:jQuery对象使用jquery的api(方法、函数)。... :animated 动画 :focus 焦点 4.内容过滤 :contains(text) 是否包含指定的内容 :empty 是否为空,不包含子元素、不包含文本 :has(选择器),当前元素,...(单选框和多选框) :selected 选中的元素(下拉选) 四.属性和样式 属性,类class,html代码/文本/值,css,位置,尺寸 1.属性 attr(name) 通过属性名获得属性值。..."> css(name) 获得样式 css(name,value) 设置样式 css(pro) 使用json设置一组样式 5.位置 offset() 获得位置,返回json数据。
万维网协会维护 CSS规范。 问题 7:伪元素是什么意思? 伪元素是添加到选择器的关键字,它允许一种样式,即所选元素的特定部分。...因此,CSS变得非常混乱,尤其是对于初学者。 缺乏安全性 - 由于CSS是基于开放文本的系统,因此它没有内置的安全系统来防止其被覆盖。...问题 20:如何在CSS中定义一个伪类?它们是用来干什么的 CSS伪类是用来添加一些选择器的特殊效果。...CSS 和 SCSS 之间的区别如下: CSS是一种用于设计web页面的样式语言,而SCSS用于为浏览器组合CSS样式表。...(6)标准化各种浏览器前缀:带浏览器前缀的在前。标准属性在后。 (7)不使用@import前缀,它会影响css的加载速度。 (8)选择器优化嵌套,尽量避免层级过深。
内联样式,在HTML元素中使用style属性定义样式 选择器都有哪些 派生选择器(根据文档的上下文关系来确定某个标签的样式。...给元素添加的内联样式 (例如, style="font-weight:bold") 总会覆盖外部样式表的任何样式 ,因此可看作是具有最高的优先级。 例外的!...important的CSS规则 给选择器更高的优先级 添加一样选择器,把它的位置放在原有声明的后面,让其覆盖 干脆改写原来的规则,以避免使用!...选择器前缀法(即选择器Hack):例如 IE6能识别*html .class{},IE7能识别*+html.class{}或者*:first-child+html .class{}。...CSS 预处理器用一种专门的编程语言,进行 Web 页面样式设计,然后再编译成正常的 CSS 文件,以供项目使用。CSS 预处理器为 CSS 增加一些编程的特性,无需考虑浏览器的兼容性问题。
请求数量:合并样式和脚本,使用CSS图片精灵,初始首屏之外的图片资源按需加载,静态资源延迟加载。 请求带宽:压缩文件,开启GZIP 。 CSS代码:避免使用CSS表达式、高级选择器、通配选择器。...(3)不声明过多的font-size。 (4)当值为0时不需要单位。 (5)标准化各种浏览器前缀,并注意以下几方面。 浏览器无前缀应放在最后。 CSS动画只用( -webkit-无前缀)两种即可。...其他前缀包括 -webkit-、-moz-、-ms-、无前缀( Opera浏览器改用 blink内核,所以-0-被淘汰) (6)避免让选择符看起来像是正则表达式。高级选择器不容易读懂,执行时间也长。...(7)尽量使用id、 class选择器设置样式(避免使用 style属性设置行内样式) (8)尽量使用CSS3动画。 (9)减少重绘和回流。 12、针对HTML,如何优化性能? 具体方法如下。...HTML5中的data属性有助于插入数据,特别是前、后端的数据交换;jQuery的 data( )方法能够有效地利用HTML5的属性来自动获取数据。 21、哪些方法能提升移动端CSS3动画体验?
后处理器, 如: postCss,通常是在完成的样式表中根据css规范处理css,让其更加有效。目前最常做的是给css属性添加浏览器私有前缀,实现跨浏览器兼容性的问题。...important声明的样式的优先级最高;如果优先级相同,则最后出现的样式生效;继承得到的样式的优先级最低;通用选择器(*)、子选择器(>)和相邻同胞选择器(+)并不在这四个等级中,所以它们的权值都为...0 ;样式表的来源不同时,优先级顺序为:内联样式 > 内部样式 > 外部样式 > 浏览器用户自定义样式 > 浏览器默认样式。...let p = new Proxy(target, handler)复制代码target 代表需要添加代理的对象,handler 用来自定义对象中的操作,比如可以用来自定义 set 或者 get 函数。...当然这是简单版的响应式实现,如果需要实现一个 Vue 中的响应式,需要在 get 中收集依赖,在 set 派发更新,之所以 Vue3.0 要使用 Proxy 替换原本的 API 原因在于 Proxy 无需一层层递归为每个属性添加代理
; 有前缀的声明适当缩进,从而对齐其值; 缩进样式集从而反映 DOM; 保留最后一条声明结尾的分号。...比起声明它们的尺寸,把格栅系统和元素的其它属性分来开处理更有助于布局,也使得我们的前端工作更高效。 你在格栅系统上不应当添加任何样式,它们仅仅是为布局而用。在格栅系统内部再添加样式。...译注,核心选择器:浏览器解析选择器为从右向左的顺序,最右端的元素是样式生效的元素,是为核心选择器。...使用 CSS 选择器的目的 比起努力运用选择器定位到某元素,更好的办法是给你想要添加样式的元素直接添加一个 class。我们以 .header ul {} 这样一个选择器为例。...这意味着我们要么要重构许多代码,要么给后面的 ul 新写许多样式来抵消之前的影响。 你的选择器必须符合你要给这个元素添加样式的原因。
领取专属 10元无门槛券
手把手带您无忧上云