一、问题出现
假设现在我们有一个自定义组件 我们需要为其设置flex-grow属性,让各个组件的大小相等,平分父容器空间,
//组件 table-cell
<view>
<text>文本</text>
</view>
//父组件中使用了table-cell组件
<view class="parent"> //这里假设parent{width:100px;height:20px;}
<table-cell/>
<table-cell/>
<table-cell/>
<table-cell/>
</view>
在正常html中我们应该这么写css
table-cell {
flex-grow: 1;
}
但是子小程序中就会出现规范错误
VM860:5 Some selectors are not allowed in component wxss, including tag name selectors, ID selectors, and attribute selectors.(********)This wxss file is ignored.
,说不允许使用标签选择器、属性选择器、id选择器,但是效果是有的,但是我们不知道在什么时候会失效,为了保险起见,我们还是听话,不用。
二、解决方式
我们可以这样,在组件的外面再套一层容器
//父组件中使用了table-cell组件
<view class="parent"> //这里假设parent{width:100px;height:20px;}
<view class="table-cell">
<table-cell/>
</view>
<view class="table-cell">
<table-cell/>
</view>
</view>
/*css*/
.table-cell {
flex-grow: 1;
}
这样就能使用class来代替标签了