首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用SASS编写可重用的CSS

使用CSS,我们经常在一个全局环境设置,这样可能会错误地设置元素的样式。 自定义CSS(即使有CSS变量)仍然是非常冗余的。...在本文中,我们将重点讨论为什么预处理程序很重要,并特别强调SASS及其将规则组合在一起的能力。使用Sass为设计现代web组件提供了一种更合理的方法。...在则开始学习前端基础知识,我们会接触到传统的 CSS,涉及到使用类或id之类的标识符来处理和操作HTML元素。 在使用CSS的时候,我们经常需要修改样式来实现预期的要求。...css 中“>”是 css3 中特有的选择器,A > B 表示选择 A 元素的所有子B元素,A B不同的是,A B 选择所有后代元素,为A > B选择一代。...,就像这样 在代码示例中,由于父选择器的原因,color:#fff适用于.theme-dark类。

7.6K20

Sentry 开发者贡献指南 - 前端(ReactJS生态)

(sx) React 定义 React 组件 组件视图 PropTypes 事件处理程序 CSS 和 Emotion stylelint 错误 "No duplicate selectors" 状态管理...stylelint 错误 "No duplicate selectors" 当您使用样式组件(styled component)作为选择器时会发生这种情况,我们需要通过使用注释来辅助 linter 来告诉...虽然我们通常支持 hooks,但我们有一些关于 hooks 应该如何 Sentry 前端一起使用的建议。 使用库中的 hooks 如果一个库提供了 hooks,你应该使用它们。...作为这个选择器的一个很好的奖励,我们确保我们的应用程序是可访问的。它很可能与 name 选项 getByRole('button', {name: /save/i}) 一起使用。...getByTestId - 因为这不反映用户如何应用交互,所以推荐用于不能使用任何其他选择器的情况 如果您仍然无法决定使用哪个查询, 请查看 testing-playground.com 以及 screen.logTestingPlaygroundURL

6.9K30
您找到你想要的搜索结果了吗?
是的
没有找到

当 Espresso 遇见 Android 单元测试

测试对象 如果项目是组件化开发的架构,将各个同类功能的代码整合在一个组件中,以便整体打包,便于维护,模块解耦合,持续构建单元测试等,可以减少底层修改导致上层错误的风险。...因此,UI控件库也作为一个单独的组件,比如时间选择器、标签组、数字选择器、带删除的输入框等等。 本文以控件时间选择器TimePicker作为测试对象来分析。...因为Android更改UI只能在UI线程中进行,所以改变控件属性的代码只能写在Activity的代码中,而不是Espresso的测试代码中。...Espresso闪亮登场 一切就绪,欠Espresso。...并且,EspressoUiautomator依赖可以同时添加在工程中混合使用,也是棒棒哒。 获取更多测试干货,请搜索微信公众号腾讯移动品质中心TMQ!

2.4K10

81.精读《使用 CSS 属性选择器

1 引言 虽然现在 Css Module Css-in-js 更流行,但使用它们会导致过分依赖 滥用 class 做唯一定位,违背了 Css 选择器的初衷。...2 概要 Css Module Css-in-js 大部分场景使用 className 作为选择器,那么本文以选择器为重点,看看选择器有哪些实用的用法。... 我们可以使用属性选择器,定义其打开的样式: details[open] { background-color: hotpink; } 为没有 async 标记的 script...小白的团队水平参差不齐,有人永远使用 table 布局,有人却总想将一些试验阶段 css 属性用在生产环境,小白自己抽象了一个全局样式 css 文件,可团队没什么时间沟通,甚至有人私下也注入了不少全局...当然 js css 是不适合放在一起比较的,css 大多是业务级别的,也就是能写 css 只有做业务的你,第三方包一般是不会提供 css 定义干扰你的项目的。

65820

小程序开发的40个技术窍门,纯干货!

小程序开发的40个技术窍门 1 Q:为什么脚本内不能使用window等对象 A:页面的脚本逻辑是在JsCore中运行,JsCore是一个没有窗口对象的环境,所以不能在脚本中使用window,也无法在脚本中操作组件...请避免多层级的交互方式,或者使用wx.redirectTo 4 Q:样式表不支持级联选择器 A:WXSS支持以.开始的类选择器。...5 Q:本地资源无法通过 css 获取 A:background-image:可以使用网络图片,或者 base64,或者使用标签 6 Q:如何修改窗口的背景色 A:使用 page 标签选择器,可以修改顶层节点的样式...,需要使用组件的属性bindchange将用户的输入内容同步到 AppService。...17 Q:关于组件的动态生成销毁? A:不支持动态生成组件,但可以用 wx:for 去渲染多个。 18 Q:小程序支持热更吗? A:不支持开发者自行更替。

1.5K100

小程序开发的40个技术窍门,纯干货!

小程序开发的40个技术窍门 1 Q:为什么脚本内不能使用window等对象 A:页面的脚本逻辑是在JsCore中运行,JsCore是一个没有窗口对象的环境,所以不能在脚本中使用window,也无法在脚本中操作组件...请避免多层级的交互方式,或者使用wx.redirectTo 4 Q:样式表不支持级联选择器 A:WXSS支持以.开始的类选择器。...5 Q:本地资源无法通过 css 获取 A:background-image:可以使用网络图片,或者 base64,或者使用标签 6 Q:如何修改窗口的背景色 A:使用 page 标签选择器...,需要使用组件的属性bindchange将用户的输入内容同步到 AppService。...17 Q:关于组件的动态生成销毁? A:不支持动态生成组件,但可以用 wx:for 去渲染多个。 18 Q:小程序支持热更吗? A:不支持开发者自行更替。

1.1K20

40条微信小程序技巧分享

,所以不能在脚本中使用window,也无法在脚本中操作组件 Q:为什么 zepto/jquery 无法使用 A:zepto/jquery 会使用到window对象和document对象,所以无法使用。...请避免多层级的交互方式,或者使用wx.redirectTo Q:样式表不支持级联选择器 A:WXSS支持以.开始的类选择器。...Q:本地资源无法通过 css 获取 A:background-image:可以使用网络图片,或者 base64,或者使用标签 Q:如何修改窗口的背景色 A:使用 page 标签选择器,可以修改顶层节点的样式...Q:关于组件的动态生成销毁? A:不支持动态生成组件,但可以用 wx:for 去渲染多个。 Q:小程序支持热更吗? A:不支持开发者自行更替。...Q:ipad不能使用小程序? A:暂时不支持ipad打开小程序。 Q:小程序音频,视频播放器问题 。1、能够隐藏进度条跟时间吗?

1.6K30

开发微信小程序,必知的40个小技巧

微信小程序开发者和开发需求者必读的40条技巧分享: Q:为什么脚本内不能使用window等对象 A:页面的脚本逻辑是在JsCore中运行,JsCore是一个没有窗口对象的环境,所以不能在脚本中使用window...,也无法在脚本中操作组件 Q:为什么 zepto/jquery 无法使用 A:zepto/jquery 会使用到window对象和document对象,所以无法使用。...请避免多层级的交互方式,或者使用wx.redirectTo Q:样式表不支持级联选择器 A:WXSS支持以.开始的类选择器。...Q:本地资源无法通过 css 获取 A:background-image:可以使用网络图片,或者 ,或者使用标签 Q:如何修改窗口的背景色 A:使用 page 标签选择器,可以修改顶层节点的样式...Q:关于组件的动态生成销毁? A:不支持动态生成组件,但可以用 wx:for 去渲染多个。 Q:小程序支持热更吗? A:不支持开发者自行更替。

2.5K30

前端:Vue前端开发规范,值得收藏!

组件样式设置作用域 对于应用来说,顶级 App 组件和布局组件中的样式可以是全局的,但是其它所有组件都应该是有作用域的。 这条规则和单文件组件有关。你不一定要使用 scoped 特性。...组件文件 只要有能够拼接文件的构建系统,就把每个组件单独分成文件。 当你需要编辑一个组件或查阅一个组件的用法,可以更快速的找到它。...单例组件名 只应该拥有单个活跃实例的组件应该以 The 前缀命名,以示其唯一性。 这不意味着组件可用于一个单页面,而是每个页面使用一次。...这些组件永远不接受任何 prop,因为它们是为你的应用定制的,而不是它们在你的应用中的上下文。如果你发现有必要添加 prop,那就表明这实际上是一个可复用的组件,只是目前在每个页面里使用一次。...在 scoped 样式中,类选择器比元素选择器更好,因为大量使用元素选择器是很慢的。

1.4K40

【小程序】自定义组件样式

组件样式隔离的注意点  3. 修改组件的样式隔离选项 4. styleIsolation 的可选值 组件的创建引用 1....引用组件 组件的引用方式分为“局部引用”和“全局引用”,顾名思义: 局部引用:组件能在当前被引用的页面内使用 全局引用:组件可以在每个小程序页面中使用 3....全局引用 VS 局部引用 根据组件使用频率和范围,来选择合适的引用方式: 如果某组件在多个页面中经常被用到,建议进行“全局引用” 如果某组件在特定的页面中被用到,建议进行“局部引用”  6....组件样式隔离的注意点 app.wxss 中的全局样式对组件无效 只有 class 选择器会有样式隔离效果,id 选择器、属性选择器、标签选择器不受样式隔离的影响 建议:在组件和引用组件的页面中建议使用...class 选择器,不要使用 id、属性、标签选择器

1.1K50

Web内容的无障碍性(3):ARIA角色Roles值示aria-*属性值列表说明

上篇《Web内容的无障碍性(2):实现WAI-ARIA无障碍网页及注意实现》,知识讲解ARIA相关的知识及使用,但是ARIA角色值属性值都非常多,除了几个简单,基本是处于懵逼状态。...Roles值示意及说明表role属性值含义说明alert表示警告例如ajax操作返回错误信息的div标签。...toolbar表示工具栏左边HTML表示一个剪切,复制,粘贴三功能在一起的工具栏。...当为true,表示辅助设备需要把整个区域内容都通报给使用者;如果为false则表示只需要通报修改的部分。还是这个时间选择器年月标题的例子。...可选值有:additions, removals, text, all,可以空格分隔多个一起显示. additions表示新增节点的时候做出反应;removals表示删除节点重要操作;text表示文本改变是值得重视的

1.8K20

编写灵活、稳定、高质量的CSS代码的规范

三、不要使用 @import 3.1 不用原因 标签相比,@import 指令要慢很多,不光增加了额外的请求次数,还会导致不可预料的问题。...这是因为虽然你可以使用嵌套,但是并不意味着应该使用嵌套。只有在必须将样式限制在父元素内(也就是后代选择器),并且存在多个需要嵌套的元素使用嵌套。 8.2 Example ?...(6)使用 .js-* class 来标识行为(样式相对),并且不要将这些 class 包含到 CSS 文件中。 在为 Sass 和 Less 变量命名也可以参考上面列出的各项规范。...十二、选择器 12.1 注意 (1)对于通用元素使用 class ,这样利于渲染性能的优化。 (2)对于经常出现的组件,避免使用属性选择器(例如,[class^="..."])。...(4)只有在必要的时候才将 class 限制在最近的父元素内(也就是后代选择器)(例如,不使用带前缀的 class -- 前缀类似于命名空间)。 12.2 Example ?

1.2K20

看,官方出品了 Vue 编码风格指南

如果在工程中使用 Vue,为了回避错误、小纠结和反模式,该指南是份不错的参考。 规则归类 优先级 A:必要 这些规则会帮你规避错误,所以学习并接受它们带来的全部代价吧。...当在组件使用 data 属性的时候 (除了 newVue 外的任何地方),它的值必须是返回一个对象的函数。 详解 当 data 的值是一个对象,它会在这个组件的所有实例之间共享。...当你需要编辑一个组件或查阅一个组件的用法,可以更快速的找到它。...小的、专注的计算属性减少了信息使用时的假设性限制,所以需求变更也用不着那么多重构了。...在 scoped 样式中,类选择器比元素选择器更好,因为大量使用元素选择器是很慢的。 详解 为了给样式设置作用域,Vue 会为元素添加一个独一无二的特性,例如 data-v-f3f3eg9。

1.3K10

看,官方出品了 Vue 编码风格指南!

如果在工程中使用 Vue,为了回避错误、小纠结和反模式,该指南是份不错的参考。 规则归类 优先级 A:必要 这些规则会帮你规避错误,所以学习并接受它们带来的全部代价吧。...当在组件使用 data 属性的时候 (除了 newVue 外的任何地方),它的值必须是返回一个对象的函数。 详解 当 data 的值是一个对象,它会在这个组件的所有实例之间共享。...当你需要编辑一个组件或查阅一个组件的用法,可以更快速的找到它。...小的、专注的计算属性减少了信息使用时的假设性限制,所以需求变更也用不着那么多重构了。...在 scoped 样式中,类选择器比元素选择器更好,因为大量使用元素选择器是很慢的。 详解 为了给样式设置作用域,Vue 会为元素添加一个独一无二的特性,例如 data-v-f3f3eg9。

1.4K10

极乐问答No.2 | 微信小程序开发40问

是一个没有窗口对象的环境,所以不能在脚本中使用window,也无法在脚本中操作组件 Q2:为什么 zepto/jquery 无法使用 A:zepto/jquery 会使用到window对象和document...请避免多层级的交互方式,或者使用wx.redirectTo Q4:样式表不支持级联选择器 A:WXSS支持以.开始的类选择器。...Q5:本地资源无法通过 css 获取 A:background-image:可以使用网络图片,或者 base64,或者使用标签 Q6:如何修改窗口的背景色 A:使用 page 标签选择器...,需要使用组件的属性bindchange将用户的输入内容同步到 AppService。...Q17:关于组件的动态生成销毁? A:不支持动态生成组件,但可以用 wx:for 去渲染多个。 Q18:小程序支持热更吗? A:不支持开发者自行更替。

1.3K80

干货|HTML5 项目如何转小程序运行

标签代码处理 相同功能的组件自动转换 uni-app 的标签组件小程序相同,比如变成了,变成了。...,详见这里 audio 组件不再推荐使用,改成 api 方式,详见这里 之前的 v-html,可以在 H5 端和 App 端(需v3编译器)使用,不能在小程序中使用。...、js 库,其中引用了包括一些使用了dom、window、navigator 的三方库,除非你做 H5 端,否则需要更换。...但需要注意以下内容: 不支持 *选择器 没有 body 元素选择器,改用 page 元素选择器。(编译到非 H5 ,编译器会自动处理。...所以不改也行) 不同端的浏览器兼容性仍然存在,避免使用太新的 css 语法,否则发布为 App ,Android 低端机(Android 4.4、5.x),会有样式错误

2.1K20

通过分析Github众多前端代码库,总结出来的前端代码书写规范

CSS 规范 语法 使用四个空格的缩进,这是保证代码在各种环境下显示一致的唯一方式。 使用组合选择器,保持每个独立的选择器占用一行。 为了代码的易读性,在每个声明的左括号前增加一个空格。...为选择器中的属性取值添加引号,例如 input[type="text"]。他们在某些情况下可有可无,所以都使用引号可以增加一致性。...避免在经常出现的组件使用一些属性选择器 (例如,[class^="..."])。浏览器性能会受到这些情况的影响。 减少选择器的长度,每个组合选择器选择器的条目应该尽量控制在 3 个以内。...在必要的情况下使用后代选择器 (例如,没有使用带前缀 classes 的情况). 代码组织 以组件为单位组织代码。 制定一个一致的注释层级结构。...使用一致的空白来分割代码块,这样做在查看大的文档更有优势。 当使用多个 CSS 文件,通过组件而不是页面来区分他们。页面会被重新排列,而组件移动就可以了。

1.1K10

Vue项目迁移小程序,实操干货分享

标签代码处理 相同功能的组件自动转换 uni-app 的标签组件小程序相同,比如变成了,变成了。...,详见这里 audio 组件不再推荐使用,改成 api 方式,详见这里 之前的 v-html,可以在 H5 端和 App 端(需v3编译器)使用,不能在小程序中使用。...、js 库,其中引用了包括一些使用了dom、window、navigator 的三方库,除非你做 H5 端,否则需要更换。...但需要注意以下内容: 不支持 *选择器 没有 body 元素选择器,改用 page 元素选择器。(编译到非 H5 ,编译器会自动处理。...所以不改也行) 不同端的浏览器兼容性仍然存在,避免使用太新的 css 语法,否则发布为 App ,Android 低端机(Android 4.4、5.x),会有样式错误

74330

css模块化及CSS Modules使用详解

加上我个人的看法,总结如下: 全局污染 CSS 使用全局选择器机制来设置样式,优点是方便重写样式。缺点是所有的样式都是全局生效,样式可能被错误覆盖,因此产生了非常丑陋的 !...命名混乱 由于全局污染的问题,多人协同开发为了避免样式冲突,选择器越来越复杂,容易形成不同的命名风格,很难统一。样式变多后,命名将更加混乱。...依赖管理不彻底 组件应该相互独立,引入一个组件,应该引入它所需要的 CSS 样式。...为了追求简单可控,作者建议遵循如下原则: 不使用选择器使用 class 名来定义样式 不层叠多个 class,使用一个 class 把所有样式定义好 所有样式通过 composes 组合来实现复用...我们现在项目中的实践是可以给组件关键节点加上 data-role 属性,然后通过属性选择器来覆盖样式。

6.7K100

通用 CSS 笔记、建议指导!

class 更易阅读定位。...**把 JS 行为样式混在一起将无法对其分别处理。 如果你要把 JS 和某些标记绑定起来的话,写一个 JS 专用的 class。...本章将探讨更理论化的东西,也将探讨我们的态度方法。 编写新组件 编写新组件,要在着手处理 CSS 之前写好 HTML 部分。这可以令你准确判断哪些 CSS 属性可以继承,避免重复浪费。...先写标记的话,你就可以关注数据、内容语义,在这之后再添加需要的 class 和 CSS 样式。 面向对象 CSS 我以面向对象 CSS 的方式写代码。我把组件分成结构(对象)外观(拓展)。...当你要编写一个新组件,将其拆分成结构和外观。编写结构部分时用最通用 class 以保证复用性,编写外观用更具体的 class 来添加设计方法。

8010
领券