【问题标题】:Aligning text in table column group in HTML5在 HTML5 中对齐表格列组中的文本
【发布时间】:2019-04-25 19:11:10
【问题描述】:

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

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

兼容性说明

HTML5 不支持 align 属性。使用 CSS 而是。

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

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

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


编辑: 正如@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,就像我对红色列所做的那样,但它肯定不起作用.

【问题讨论】:

  • 您能否发布一些代码,以便我们了解您的操作?
  • 我稍后会添加一个,但它真的需要示例代码吗?这并不复杂 - 我想通过 colcolgroup 元素将列中单元格的内容居中对齐,因为它以前(在 HTML5 之前)曾经(使用属性)工作。
  • 如果你能看到在这种情况下你实际上想要做什么,那么给出一个好的实践例子会更容易。但我建议您只向要对齐的单元格添加一个类,例如&lt;td class="cell-center"&gt;,然后在您的 CSS 中指定它。或者,给每一列一个代表该列的类,然后您可以控制 CSS 中每个上下文的对齐方式。
  • 这里已经回答了这个问题。 stackoverflow.com/questions/1238115/…
  • 您似乎尝试将表格中的所有内容居中对齐。您只需添加 即可解决此问题。

标签: css html text-align col colgroup


【解决方案1】:

也许我应该在 cmets 中对此更清楚,但是不,您不能使用 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>

【讨论】:

  • 啊,对,子选择器...嗯,我已经很久没有使用 CSS 了。将不得不看看这个。有没有例如“从第 2 个到第 5 个孩子”选择器?
  • @SoulReaver 是的。我已经编辑了我的帖子并添加了一个示例。
猜你喜欢
  • 1970-01-01
  • 2021-09-08
  • 2022-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-16
  • 2012-11-07
  • 2015-01-03
相关资源
最近更新 更多