taro 组件的外部样式和全局样式

  • 自定义组件对应的样式文件,只对该组件内的节点生效。

编写组件样式时,需要注意以下几点:

  1. 组件和引用组件的页面不能使用 id 选择器(#a)、属性选择器([a])和标签名选择器,请改用 class 选择器。
  2. 组件和引用组件的页面中使用后代选择器(.a .b)在一些极端情况下会有非预期的表现,如遇,请避免使用。
  3. 子元素选择器(.a>.b)只能用于 View 组件与其子节点之间,用于其他组件可能导致非预期的情况。
  4. 继承样式,如 font 、 color ,会从组件外(父组件)继承到组件内。但是引用组件时在组件节点上书写的 className 无效。 (具体解决方案请参见下面的外部和全局样式介绍。)
  5. 除继承样式外, app.scss 中的样式、组件所在页面的样式,均对自定义组件无效。

除此以外,组件可以指定它所在节点的默认样式,使用 :host 选择器(需要包含基础库 1.7.2 或更高版本的开发者工具支持)。

1/* 该自定义组件的默认样式 */ 2:host { 3 color: yellow; 4}

外部样式类

如果想传递样式给引用的自定义组件,需要利用 externalClasses 定义段定义若干个外部样式类。这个特性从小程序基础库版本 1.9.90 开始支持。

1/* CustomComp.js */ 2export default CustomComp extends Component { 3 static externalClasses = ['my-class'] 4 5 render () { 6 return <View className="my-class">这段文本的颜色由组件外的 class 决定</View> 7 } 8} 9/* MyPage.js */ 10export default MyPage extends Component { 11 render () { 12 return <CustomComp my-class="red-text" /> 13 } 14} 15/* MyPage.scss */ 16.red-text { 17 color: red; 18}

注意:externalClasses 需要使用 短横线命名法 (kebab-case),而不是 React 惯用的 驼峰命名法 (camelCase)。否则无效。

全局样式类

使用外部样式类可以让组件使用指定的组件外样式类,如果希望组件外样式类能够完全影响组件内部,可以将组件构造器中的 options.addGlobalClass 字段置为 true。这个特性从小程序基础库版本 2.2.3 开始支持。

1/* CustomComp.js */ 2export default CustomComp extends Component { 3 static options = { 4 addGlobalClass: true 5 } 6 7 render () { 8 return <View className="red-text">这段文本的颜色由组件外的 class 决定</View> 9 } 10} 11/* 组件外的样式定义 */ 12.red-text { 13 color: red; 14}
点赞
收藏

评论区

加载中...

相关推荐

uni-app入门教程(2)页面样式、配置文件和生命周期

前言本文先介绍uniapp的页面样式和布局,包括尺寸单位、样式导入、内联样式和选择器等;再介绍两个配置文件,即pages.json和manifest.json的配置项和基本使用;最后简要介绍了生命周期的基本使用。一、页面样式与布局1.尺寸单位uniapp框架目前仅支持长度单位px和%。与传统web页面不同,px是相对于基准宽度

3分钟教你用原生js实现具有进度监听的文件上传预览组件

本文主要介绍如何使用原生js,通过面向对象的方式实现一个文件上传预览的组件,该组件利用FileReader来实现文件在前端的解析,预览,读取进度等功能,并对外暴露相应api来实现用户自定义的需求,比如文件上传,进度监听,自定义样式,读取成功回调等。组件设计架构如下:(https://imghelloworld.osscnbeijing.

Less 嵌套

本节我们学习Less中的嵌套,嵌套应该很容易理解,HTML语言中就支持标签的嵌套。我们在使用CSS时,如果想要为多层嵌套的元素设置样式,要么给元素加上一个类选择器或ID选择器,要么使用后代选择器。例如:.xkd{fontsize:14px;}.xkdp{lineheight:25

CSS3的基础知识学习(二)

前言:CSS主要是用来修饰标签的样式、使得网页更加美观,其实css的引用有三种方式,但主要是使用链接引用,意思就是我们写一个.css的文件,将样式修饰的控制代码写在这里面,这样控制起来方便快捷。对于CSS的学习,知识点中最重要的部分就是属性和选择器,其次还有页面布局和盒子模型,下面进行学习以及代码效果演示。一、CSS的三种引入

CSS基本语法及页面引用

css基本语法及页面引用(1)css基本语法css的定义方法是:选择器{属性:值;属性:值;属性:值;}选择器是将样式和页面元素关联起来的名称,属性是希望设置的样式属性每个属性有一个或多个值。代码示例:/css注释ctrlshift"/"/d

Sass

嵌套规则(NestedRules)Sass允许将一套CSS样式嵌套进另一套样式中,内层的样式将它外层的选择器作为父选择器mainp{color:00ff00;width:97%;.redbox{