table展开行,里面数据和表头对齐

展开行列表数据展示

img

img


需要在不同分辨率都要上下对齐,这种样式应该怎么调一下。。之前用的@media,但是只有几种分辨率是对齐的。

img

后面几列是固定宽度吗?下面保持宽度一致是对齐的吧,布局怎么写的

img

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答由chatgpt基于相关博客总结生成:

    我可以通过为展开的行添加一个绝对定位的元素来解决这个问题。以下是我给出的解决方案:

    1. 首先,在表格的每一行中,添加一个展开行的元素。这个元素将显示在当前行的下方,因此需要使用绝对定位。
    <template>
      <table>
        <tbody>
          <tr v-for="item in items" :key="item.id">
            <td>{{ item.name }}</td>
            <td>{{ item.age }}</td>
            <td>{{ item.gender }}</td>
            <td v-if="item.isExpanded" class="expanded-row">
              <!-- 展开行的内容 -->
            </td>
          </tr>
        </tbody>
      </table>
    </template>
    
    1. 在展开行的样式中,使用绝对定位将其放置在当前行的下方,并且与表头对齐。
    .expanded-row {
      position: absolute;
      left: 0;
      width: 100%;
      /* 设置展开行的样式,例如背景色、文字颜色等 */
    }
    
    1. 在Vue.js中,通过给每一行添加一个isExpanded属性来控制展开行的显示和隐藏。
    export default {
      data() {
        return {
          items: [
            { id: 1, name: '张三', age: 20, gender: '男', isExpanded: false },
            { id: 2, name: '李四', age: 25, gender: '女', isExpanded: false },
            // 其他行数据
          ]
        }
      }
    }
    
    1. 在模板中,通过点击行来控制展开行的显示和隐藏。
    <template>
      <table>
        <tbody>
          <tr v-for="item in items" :key="item.id" @click="toggleExpanded(item)">
            <td>{{ item.name }}</td>
            <td>{{ item.age }}</td>
            <td>{{ item.gender }}</td>
            <td v-if="item.isExpanded" class="expanded-row">
              <!-- 展开行的内容 -->
            </td>
          </tr>
        </tbody>
      </table>
    </template>
    
    1. 在Vue.js的方法中,实现toggleExpanded方法来切换展开行的显示和隐藏。
    export default {
      methods: {
        toggleExpanded(item) {
          item.isExpanded = !item.isExpanded;
        }
      }
    }
    

    通过以上步骤,展开的行将会在表格中与表头对齐,并且可以在不同分辨率下正常显示。请注意,这只是一个基本的解决方案,你可以根据具体需求对样式和布局进行调整。如果你有任何其他问题或困惑,请随时向我提问。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^