我编写了以设置宽度垂直对齐表数据的代码:

.table-striped tbody tr:nth-child(odd) {
  background-color: #E7E9EB;
}

table {
  table-layout: fixed;
}

table thead th {
  text-align: left;
}

@media screen and (max-width: 600px) {
  table thead th {
    display: none;
  }

  table td {
    display: block;
  }

  table td::before {
    content: attr(data-label);
    font-weight: bold;
    margin-right:10px;
  }
}
<!-- This is a minimally styled version of the code found here https://whatabouthtml.com/ui-component/responsive-table-with-vertically-stacked-cells/ -->

<html>
  <table width="100%" class="table-striped">
    <thead>
      <tr>
        <th>Name</th>
        <th>Document</th>
        <th>Type</th>
        <th>Color</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td data-label="Name">Jay</td>
        <td data-label="Document">Handsome</td>
        <td data-label="Type">Dog</td>
        <td data-label="Color">Black</td>
      </tr>
      <tr>
        <td data-label="Name">Carl</td>
        <td data-label="Document">Friendly</td>
        <td data-label="Type">Cat</td>
        <td data-label="Color">Orange</td>
      </tr>
      <tr>
        <td data-label="Name">Hissy</td>
        <td data-label="Document">Eats well</td>
        <td data-label="Type">Snake</td>
        <td data-label="Color">Green</td>
      </tr>
    </tbody>
  </table>
</html>

这张表是这样写的:

enter image description here

当浏览器宽度减小时设置为:

enter image description here

但是,我希望表格数据单元格垂直对齐,如下所示:

enter image description here

我只想修改我的代码,因为这段代码比the solution I had before更容易管理.

如何修改此代码以实现垂直表数据对齐?

推荐答案

我不确定您是否可以动态地适应第一列中的文本,但我认为为了安全起见,百分比宽度与最小宽度会很好.

.table-striped tbody tr:nth-child(odd) {
  background-color: #E7E9EB;
}

table {
  table-layout: fixed;
}

table thead th {
  text-align: left;
}

@media screen and (max-width: 600px) {
  table thead th {
    display: none;
  }

  table td {
    display: block;
  }

  table td::before {
    content: attr(data-label);
    font-weight: bold;
    margin-right:10px;
    display: inline-block; /*******************************/
    width: 25%; /******************************************/
    min-width: 100px; /************************************/
  }
}
<!-- This is a minimally styled version of the code found here https://whatabouthtml.com/ui-component/responsive-table-with-vertically-stacked-cells/ -->

<html>
  <table width="100%" class="table-striped">
    <thead>
      <tr>
        <th>Name</th>
        <th>Document</th>
        <th>Type</th>
        <th>Color</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td data-label="Name">Jay</td>
        <td data-label="Document">Handsome</td>
        <td data-label="Type">Dog</td>
        <td data-label="Color">Black</td>
      </tr>
      <tr>
        <td data-label="Name">Carl</td>
        <td data-label="Document">Friendly</td>
        <td data-label="Type">Cat</td>
        <td data-label="Color">Orange</td>
      </tr>
      <tr>
        <td data-label="Name">Hissy</td>
        <td data-label="Document">Eats well</td>
        <td data-label="Type">Snake</td>
        <td data-label="Color">Green</td>
      </tr>
    </tbody>
  </table>
</html>

Html相关问答推荐

如何在一个div中心字体图标?

隐藏滚动条和禁用文本 Select 的CSS技术?

在浮动元素旁边垂直居中

使用网格时图像溢出容器高度

输入宽度在表格显示上不起作用FLEX溢出隐藏Firefox

页脚与主要内容重叠

为什么不是所有字体好的图标都能与boostRapCDN一起使用呢?

HTMLTag属性内的svelte+TS类型声明

如何从elementor中的滑块中获取文本?

如何设计缠绕锚点元素的样式?

如何解决水平塌陷问题?

如何使用css在响应图像后面添加形状?

仅 Select 悬停的级别,而不 Select 其父级或子级

Django 如何从文件系统下载文件?

使用 calc 函数设置字体大小时 Flexbox 项目重叠

如何动态调整彼此重叠的两个 div 的大小,使它们在增长时保持相同的高度

使用 rgba() 的 css 中的边框不透明度不起作用

有没有办法使用 CSS border-radius 创建 HTML 视频标签的三角形显示?

Bootstrap 5 网格问题,div 向下转义

表格布局:固定;文本溢出单元格时不起作用