收藏
回答

多列可选数量不同的单选框,怎么对齐高度?

<view class="container">
  <view class="column-who">
    <radio-group class="radio-group-who" data-id="who" bindchange="onRadioChange">
        <radio class="radio" wx:for-items="{{whoItems}}" wx:key="name" value="{{item.name}}" checked="{{item.checked}}">
                    <text>{{item.value}}</text>
                </radio>
    </radio-group>
  </view>
  <view class="column-what">
    <radio-group class="radio-group-what" data-id="what" bindchange="onRadioChange">
        <radio class="radio" wx:for-items="{{whatItems}}" wx:key="name" value="{{item.name}}" checked="{{item.checked}}">
                    <text>{{item.value}}</text>
                </radio>
    </radio-group>
  </view>
  <view class="column-how">
    <radio-group class="radio-group-how" data-id="how" bindchange="onRadioChange">
        <radio class="radio" wx:for-items="{{howItems}}" wx:key="name" value="{{item.name}}" checked="{{item.checked}}">
                    <text>{{item.value}}</text>
                </radio>
    </radio-group>
  </view>
  <view class="column-checkbox-group">
    <checkbox-group class="checkbox-group" bindchange="onCheckboxChange">
      <label>
        <checkbox value="勾选" checked="{{isChecked}}">{{'无精胡牌'}}</checkbox>
      </label>
    </checkbox-group>
  </view>
</view>


.container {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    justify-content: center‌;
    height70vh/* 设置父容器高度为视口高度,可以根据需要调整 */
    padding-top123rpx; /* 如果有设置的话 */
    background-colorrgb(255255255);
  }




  .column-what {
    
    flex1;
    display: flex; /* 子元素内部也使用flex布局 */
  flex-direction: column; /* 垂直排列内部元素 */
  }


  .column-how {
    
    flex1;
    display: flex; /* 子元素内部也使用flex布局 */
  flex-direction: column; /* 垂直排列内部元素 */
  }


  .column-checkbox-group {
    flex1;
    display: flex; /* 子元素内部也使用flex布局 */
  flex-direction: column; /* 垂直排列内部元素 */
  }


  .column-who {
    display: flex; /* 子元素内部也使用flex布局 */
  flex-direction: column; /* 垂直排列内部元素 */
  width80px;


  }


  .radio-group-who {
align-items: center; /* 垂直对齐方式 */
flex1/* 使radio-group-who占满column-who的空间 */
display: flex;
  flex-direction: column;


  }


  .radio {
    flex1/* 使每个radio占满radio-group-who的空间,并平均分配 */
    display: flex;
    align-items: center; /* 水平居中 */
  }


现在发现左边三列的高度不一样,想要吧这三列高度对齐有什么办法吗?或者每一列的东西居中对齐

最后一次编辑于  01-16
回答关注问题邀请回答
收藏

1 个回答

  • 拾忆
    拾忆
    01-16

    1.使用flex布局(可能会有兼容问题)

    2.根据选项最多列计算固定高度(行高*选项个数),然后其他列表每行根据百分比设置高度,然后在设置行内垂直居中。

    3.根据选项先判断出最多项的个数,然后其他较少选项的列在适当位置插入空行(高度每个项一致),这样无法做到平均对齐。

    01-16
    有用
    回复 2
    • Khalil
      Khalil
      01-18
      其他列表每行根据百分比设置高度   这个怎么设置啊?
      01-18
      回复
    • 拾忆
      拾忆
      01-18回复Khalil
      举例一个2列里分别是3行和5行每行高度30px。
      那么高度就是5*30px=150px,3行的每行高度就是50px。
      01-18
      回复
登录 后发表内容