微信小程序CSS-父盒子跟子盒子之间的缝隙问题

时间:2021-10-27

问题:
父子盒子结构中,父级盒子有border时,子盒子不能完全和父盒子边框重合,会有一个小的缝隙;

注:微信小程序真机环境下测试,父级盒子有border时出现的问题,无border时就没了该问题。

原因:
暂时不清楚。

解决方法:
border从父级盒子移至子盒子上,子盒子和之前一样正常排版。

其他:
搜索栏样式,后面的小放大镜和前面的搜索栏若原本是大盒子(容器盒子)嵌套小盒子(搜索input和放大镜)结构,且大盒子有border,若是出现小盒子无法和大盒子border完全重合,可以使用拼接方式,修改为同级结构,进行拼接。

截图:
微信小程序CSS-父盒子跟子盒子之间的缝隙问题
微信小程序CSS-父盒子跟子盒子之间的缝隙问题
微信小程序CSS-父盒子跟子盒子之间的缝隙问题

<!-- 套餐1 -->
  <view wx:if="{{1}}" class="bs_bb pl_40 pr_40">
    <view class="font_000 fs_36 fw_b mb_30">选择套餐1</view>
    <view class="flex_r flex_aic flex_jcsb">
      <!-- 边框在父盒子 -->
      <view wx:for="{{member_combo}}" wx:key="member_combo"
        class="position_r mi_tc bs_bb h_220 br_10 of_h b_2s_dde6f2 {{selected_combo_id == item.id ? 'mi_tc_selected' : ''}}"
        bindtap="chooseMemberCombo" data-id="{{item.id}}" data-price="{{item.price}}">
        <view wx:if="{{item.mark && selected_combo_id == item.id}}"
          class="mi_mark position_a bbrr_10 font_fff fs_20 pl_10 pr_10 h_30 bg_ff5e5e">限时优惠
        </view>
        <view class="flex_c flex_aic flex_jcsb bs_bb h_p_100 w_p_100 pt_36 pb_30">
          <view class="mi_time font_333 fs_30">3天</view>
          <view class="mi_money fw_b">
            <text class="fs_30">¥</text>
            <text class="fs_44">2.99</text>
          </view>
          <view class="fs_22 font_95a0b9">每天仅需1.0元</view>
        </view>
      </view>
    </view>
  </view>

  <!-- 套餐2 -->
  <view wx:if="{{1}}" class="bs_bb pl_40 pr_40">
    <view class="font_000 fs_36 fw_b mb_30">选择套餐2</view>
    <view class="flex_r flex_aic flex_jcsb">
      <!-- 去除父级盒子边框-b_2s_dde6f2 -->
      <view wx:for="{{member_combo}}" wx:key="member_combo" class="position_r mi_tc bs_bb h_220 br_10 of_h"
        bindtap="chooseMemberCombo" data-id="{{item.id}}" data-price="{{item.price}}">
        <view wx:if="{{item.mark && selected_combo_id == item.id}}"
          class="mi_mark position_a bbrr_10 font_fff fs_20 pl_10 pr_10 h_30 bg_ff5e5e">限时优惠
        </view>
        <!-- 边框在子盒子 -->
        <view
          class="flex_c flex_aic flex_jcsb bs_bb h_p_100 w_p_100 pt_36 pb_30 br_10 of_h b_2s_dde6f2 {{selected_combo_id == item.id ? 'mi_tc_selected' : ''}}">
          <view class="mi_time font_333 fs_30">3天</view>
          <view class="mi_money fw_b">
            <text class="fs_30">¥</text>
            <text class="fs_44">2.99</text>
          </view>
          <view class="fs_22 font_95a0b9">每天仅需1.0元</view>
        </view>
      </view>
    </view>
  </view>
.mi_tc {
  width: 28%;
  box-shadow: 2px 3px 4px rgba(0, 0, 0, 0.05);
}

.mi_tc_selected {
  border: 2rpx solid #FF5E5E;
}

.mi_tc_selected .mi_time {
  color: #FF5E5E;
}

.mi_tc_selected .mi_money {
  color: #FF5E5E;
}

.bs_bb {
  box-sizing: border-box;
}

.pl_40 {
  padding-left: 40rpx;
}

.pr_40 {
  padding-right: 40rpx;
}

.font_000 {
  color: #000;
}

.fs_36 {
  font-size: 36rpx;
}

.fw_b {
  font-weight: bold;
}

.mb_30 {
  margin-bottom: 30rpx;
}

.h_220 {
  height: 220rpx;
}

.br_10 {
  border-radius: 10rpx;
}

.of_h {
  overflow: hidden;
}

.bbrr_10 {
  border-bottom-right-radius: 10rpx;
}

.font_fff {
  color: #fff;
}

.fs_20 {
  font-size: 20rpx;
}

.pl_10 {
  padding-left: 10rpx;
}

.pr_10 {
  padding-right: 10rpx;
}

.h_30 {
  height: 30rpx;
}

.bg_ff5e5e {
  background-color: #ff5e5e;
}

.w_p_100 {
  /* width_percentage_100% */
  width: 100%;
}

.h_p_100 {
  /* height_percentage_100% */
  height: 100%;
}

.pt_36 {
  padding-top: 36rpx;
}

.pb_30 {
  padding-bottom: 30rpx;
}

.b_2s_dde6f2 {
  border: 2rpx solid #dde6f2;
}

.font_333 {
  color: #333;
}

.fs_30 {
  font-size: 30rpx;
}

.fs_44 {
  font-size: 44rpx;
}

.fs_22 {
  font-size: 22rpx;
}

.font_95a0b9 {
  color: #95a0b9;
}

.position_r {
  /* 相对定位 */
  position: relative;
}

.position_a {
  /* 绝对定位 */
  position: absolute;
}

.flex_c {
  display: flex !important;
  flex-direction: column;
}

.flex_aic {
  align-items: center;
}

.flex_jcc {
  justify-content: center;
}

.flex_jcsb {
  justify-content: space-between;
}
上一篇:cf1486 D. Max Median - 判断是否存在一个区间和大于0


下一篇:【JZOJ7038】异或