2

我正在尝试在表格中的一组列中对齐(中心)内容。我已经了解了colgroupcol元素(以前从未使用过它们)。我了解到这些元素具有align属性,但现在,在 HTML 中,它已经消失了。

在 w3school 服务上,我看到了这个注释:

兼容性说明

HTML5 不支持 align 属性。改用 CSS。

CSS 语法:<td style="text-align:right">

这是否意味着,列/列组的对齐功能已被删除,现在我必须在该列的每个单元格上放置样式/类元素?那么可以使用什么col和元素呢?colgroup我已经看到该设置background-color仍然有效。还要别的吗?

PS这是一个糟糕的体验,了解一个功能并立即学习,实际上你已经不能使用它了:/


编辑:正如@JLe 所问,我添加了这个示例代码:

<table>
  <colgroup>
    <col span="2" style="background-color:red; text-align: center;">
    <col style="background-color:yellow">
  </colgroup>
  <thead>
    <tr>
      <td>ISBN</td>
      <td>Title</td>
      <td style="text-align: center;">Price - longer</td>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>3476896</td>
      <td>My first HTML - long title</td>
      <td style="text-align: center;">$53</td>
    </tr>
    <tr>
      <td>5869207</td>
      <td>My first CSS</td>
      <td style="text-align: center;">$49</td>
    </tr>
  </tbody>
</table>

所以我能够通过单元格样式将黄色单元格的内容居中,但我想问是否有办法将该对齐代码放入colgroup,就像我对红色列所做的那样,但它肯定不起作用。

4

1 回答 1

3

也许我应该在评论中更清楚地说明这一点,但是不,您不能使用 col 对其进行文本对齐。它不适用于规范。

相反,您可以做的是使用 CSS 来对齐每个元素的不同子tr元素,因为这有点相同。

<style>
    tr td:nth-child(-n+2) {
        text-align: center;
    }
</style>
<table>
  <colgroup>
    <col span="2" style="background-color:red; text-align: center;">
    <col style="background-color:yellow">
  </colgroup>
  <thead>
    <tr>
      <td>ISBN</td>
      <td>Title</td>
      <td style="text-align: center;">Price - longer</td>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>3476896</td>
      <td>My first HTML - long title</td>
      <td style="text-align: center;">$53</td>
    </tr>
    <tr>
      <td>5869207</td>
      <td>My first CSS</td>
      <td style="text-align: center;">$49</td>
    </tr>
  </tbody>
</table>

要创建更高级的选择器,您可以加入它们,制作 AND 语句(或联合)。因此,要在序列中选择元素 2-5,请创建一个选择前五个的选择器,以及一个选择 2、3、... 直到结束的选择器:

tr td:nth-child(-n+5):nth-child(n+2) {
  background-color: red;
}
<table>
  <tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
    <td>4</td>
    <td>5</td>
    <td>6</td>
    <td>7</td>
  </tr>
</table>

于 2018-11-23T08:55:46.437 回答