小程序
小游戏
企业微信
微信支付
扫描小程序码分享
RT,自定义组件是用shadow-root包装起来的,那么如何在引用页面定义组件的样式呢
9 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
目前基础库版本 >= 1.9.90 已有 externalClasses 支持。正式文档尚未放出,你们可以先尝试下:
组件中:
Component({
externalClasses: ['my-class']
})
组件外:
<my-component my-class="the-class" />
.the-class {
background: red;
}
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
目前基础库的实现可以支持,不过不推荐这么做。
好的,感谢反馈。我们会尽快加入相关支持。
你好,现在暂不支持与样式class传递相关的特性,我们正在设计相关的接口。能否描述一下你具体的使用场景呢?
你可以给组件添加class,并用这个 class 去找 影子节点(shadow-root)下的元素进行设置,下边是demo
组件:
<
view
class
=
"progress-bar"
style
"width: {{percentage}}%"
>{{percentage}}%</
>
slot
></
样式:
.progress-container{
height
:
100%
;
padding
0
5%
padding-top
400
rpx;
box-sizing: border-box;
.progress-tip {
text-align
center
margin-top
70
font-size
18px
:host{
display
: -webkit-box;
: flex;
1
rem;
overflow
hidden
0.75
background-color
#e9ecef
border-radius:
0.25
.progress-bar {
: -ms-flexbox;
-webkit-box-orient: vertical;
-webkit-box-
direction
normal
flex-
: column;
-webkit-box-pack:
justify-
content
color
#fff
#1AAD19
transition: width
0.6
s ease;
/*背景色*/
.bg-success{
#28a745
!important
.bg-info{
#17a2b8
.bg-warning{
#ffc107
.bg-danger{
#dc3545
/*进度条动画*/
@-webkit-keyframes progress-bar-stripes {
from {
background-position
rem
to {
@keyframes progress-bar-stripes {
/*进度条背景色*/
.progress-bg-
default
{
#007bff
.progress-bg-success{
.progress-bg-info{
.progress-bg-warning{
.progress-bg-danger{
.progress-bar-striped view{
background-image
: linear-gradient(
45
deg, rgba(
255
,
0.15
)
25%
transparent
50%
, rgba(
75%
);
background-
size
.progress-bar-animated view{
-webkit-animation: progress-bar-stripes
s linear infinite;
animation: progress-bar-stripes
引用:
"progress-container"
better-progress
"progress-bar-striped progress-bar-animated"
percentage
"{{percentage}}"
"progress-tip"
>{{year}}年已经过去了{{percentage}}%</
</
谢谢
什么时候可以正式支持?@官方
实测在引用的页面里可以使用: 组件名 标签名 的形式。
比如自定义组件叫:btnex, btnex下有个button,以下样式可以作用到button上
btnex button{ height: 96rpx; }
请问这是一个普遍支持,还是少数机型上的个案
就是开发了一个自定义组件,但是在不同页面中引入时,需要个性化该组件的部分样式
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
目前基础库版本 >= 1.9.90 已有 externalClasses 支持。正式文档尚未放出,你们可以先尝试下:
组件中:
Component({
externalClasses: ['my-class']
})
<view class="my-class"> text </view>组件外:
<my-component my-class="the-class" />
.the-class {
background: red;
}
目前基础库的实现可以支持,不过不推荐这么做。
好的,感谢反馈。我们会尽快加入相关支持。
你好,现在暂不支持与样式class传递相关的特性,我们正在设计相关的接口。能否描述一下你具体的使用场景呢?
你可以给组件添加class,并用这个 class 去找 影子节点(shadow-root)下的元素进行设置,下边是demo
组件:
<
view
class
=
"progress-bar"
style
=
"width: {{percentage}}%"
>{{percentage}}%</
view
>
<
slot
></
slot
>
样式:
.progress-container{
height
:
100%
;
padding
:
0
5%
;
padding-top
:
400
rpx;
box-sizing: border-box;
}
.progress-tip {
text-align
:
center
;
margin-top
:
70
rpx;
font-size
:
18px
;
}
:host{
display
: -webkit-box;
display
: flex;
height
:
1
rem;
overflow
:
hidden
;
font-size
:
0.75
rem;
background-color
:
#e9ecef
;
border-radius:
0.25
rem;
}
.progress-bar {
display
: -webkit-box;
display
: -ms-flexbox;
display
: flex;
-webkit-box-orient: vertical;
-webkit-box-
direction
:
normal
;
flex-
direction
: column;
-webkit-box-pack:
center
;
justify-
content
:
center
;
color
:
#fff
;
text-align
:
center
;
background-color
:
#1AAD19
;
transition: width
0.6
s ease;
}
/*背景色*/
.bg-success{
background-color
:
#28a745
!important
;
}
.bg-info{
background-color
:
#17a2b8
!important
;
}
.bg-warning{
background-color
:
#ffc107
!important
;
}
.bg-danger{
background-color
:
#dc3545
!important
;
}
/*进度条动画*/
@-webkit-keyframes progress-bar-stripes {
from {
background-position
:
1
rem
0
;
}
to {
background-position
:
0
0
;
}
}
@keyframes progress-bar-stripes {
from {
background-position
:
1
rem
0
;
}
to {
background-position
:
0
0
;
}
}
/*进度条背景色*/
.progress-bg-
default
{
background-color
:
#007bff
;
}
.progress-bg-success{
background-color
:
#28a745
!important
;
}
.progress-bg-info{
background-color
:
#17a2b8
!important
;
}
.progress-bg-warning{
background-color
:
#ffc107
!important
;
}
.progress-bg-danger{
background-color
:
#dc3545
!important
;
}
.progress-bar-striped view{
background-image
: linear-gradient(
45
deg, rgba(
255
,
255
,
255
,
0.15
)
25%
,
transparent
25%
,
transparent
50%
, rgba(
255
,
255
,
255
,
0.15
)
50%
, rgba(
255
,
255
,
255
,
0.15
)
75%
,
transparent
75%
,
transparent
);
background-
size
:
1
rem
1
rem;
}
.progress-bar-animated view{
-webkit-animation: progress-bar-stripes
1
s linear infinite;
animation: progress-bar-stripes
1
s linear infinite;
}
引用:
<
view
class
=
"progress-container"
>
<
better-progress
class
=
"progress-bar-striped progress-bar-animated"
percentage
=
"{{percentage}}"
></
better-progress
>
<
view
class
=
"progress-tip"
>{{year}}年已经过去了{{percentage}}%</
view
>
</
view
>
谢谢
什么时候可以正式支持?@官方
实测在引用的页面里可以使用: 组件名 标签名 的形式。
比如自定义组件叫:btnex, btnex下有个button,以下样式可以作用到button上
btnex button{ height: 96rpx; }
请问这是一个普遍支持,还是少数机型上的个案
就是开发了一个自定义组件,但是在不同页面中引入时,需要个性化该组件的部分样式