微信小程序坑-子组件的外层容器百分之百无效

bug如下

<view class="wrapper">

<!-- tab导航栏 -->

<scroll-view class="tab" scroll-x="true">

<view wx:for="{{menuList}}" wx:key="index" class="tab-item {{currentTab == index ? 'active' : ''}}"

data-current="{{index}}" data-catid="{{item.catid}}" bindtap='clickMenu'>{{item.catname}}</view>

</scroll-view>

<view class='tab_btn' bindtap='showShopType'>

<view class='tab_btn_ico'>

<image mode='scallToFill' lazy-load='true' src='/imgs/tab_bt.png'></image>

</view>

</view>

</view>

.wrapper {

border: 1px solid red;

display: flex;

width: 100%;

box-sizing: border-box;

}


子组件的wrapper为100%时显示出来的效果却不是占满父元素的同宽,而是产生了间距
问题原因
子组件默认自带一个隐藏的page页面,这个隐藏的Page页面自带默认的最大宽,实际上100%是以这个默认的page的最大宽为基准
解决方法
获取父元素的模板层所输出的dom元素的真实宽rpx,将子组件的外层容器wrapper的width100%改为width:xxrpx;
 

.wrapper {

border: 1px solid red;

display: flex;

width: 750rpx;

box-sizing: border-box;

}

<view class="wrapper">

<!-- tab导航栏 -->

<scroll-view class="tab" scroll-x="true">

<view wx:for="{{menuList}}" wx:key="index" class="tab-item {{currentTab == index ? 'active' : ''}}"

data-current="{{index}}" data-catid="{{item.catid}}" bindtap='clickMenu'>{{item.catname}}</view>

</scroll-view>

<view class='tab_btn' bindtap='showShopType'>

<view class='tab_btn_ico'>

<image mode='scallToFill' lazy-load='true' src='/imgs/tab_bt.png'></image>

</view>

</view>

</view>
 

<view class="main">

<!--tab导航-->

<com-head-navigation-scrollView></com-head-navigation-scrollView>

<com-shop-type title="商品类别" shops='{{menuList}}' bind:shopTypeHide='shopTypeCloseClick'

bind:shopTypeClick='shopTypeClick' class="{{showShopType == false ? 'hideShopType' : ''}}"></com-shop-type>

<!-- tab导航页面 -->

<swiper class="content" style='height:{{tabContentHeight}}' duration="1000" current="{{currentTab}}"

bindchange="changeContent">

<swiper-item class="content-item" wx:for="{{menuList}}" wx:key="index">

<com-choiceining id="indexPage{{index}}" catId="{{item.catid}}" modelNames="{{item.node_order_info}}">

</com-choiceining>

</swiper-item>

</swiper>

</view>

本例中,由于main父组件的主容器Main容器的宽为750rpx,所以子组件的外层容器设为750rpx

猜你喜欢

转载自blog.csdn.net/qq_38603437/article/details/89304659