表列格式

时间:2020-03-06 14:58:38  来源:igfitidea点击:

我正在尝试使用<col />元素格式化<table />中的列。我可以设置"背景颜色","宽度"等,但是不能设置"字体粗细"。为什么不起作用?

<table>
    <col style="font-weight:bold; background-color:#CCC;">
    <col>
    <tr>
        <td>1</td>
        <td>2</td>
    </tr>
    <tr>
        <td>3</td>
        <td>4</td>
    </tr>
</table>

解决方案

一个col标签必须在一个colgroup标签内,这可能与问题有关。

我们是否尝试过通过CSS类应用样式?

以下内容似乎起作用:

<style type="text/css"> 
  .xx {
  background: yellow;
  color: red;
  font-weight: bold;
  padding: 0 30px;
  text-align: right;
}

<table border="1">
  <col width="150" />
  <col width="50" class="xx" />
  <col width="80" />
<thead>
  <tr>
    <th>1</th>
    <th>2</th>
    <th>3</th>
    <th>4</th>
  </tr>
</thead>
<tbody>
  <tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
    <td>4</td>
    </tr>
</tbody>
</table>

col元素的参考

最好的选择是直接将样式应用于&lt;td>标签。我从没有使用过<col>标签,但是大多数浏览器都允许我们在&lt;table>&lt;td>/&lt;th>级别应用格式化,但不能在中间级别应用。例如,如果我们有

<table>
    <tr class="Highlight">
        <td>One</td>
        <td>Two</td>
    </tr>
    <tr>
        <td>A</td>
        <td>B</td>
    </tr>
</table>

那么这个CSS将无法正常工作

tr.Highlight { background:yellow }

但这会

tr.Highlight td { background:yellow }

另外:我假设我们上面的代码仅用于演示目的,并且我们实际上不会内联应用样式。

据我所知,我们只能在CSS <col>元素上使用CSS格式化以下内容:

  • 背景颜色
  • 边界
  • 宽度
  • 能见度

此页面有更多信息。

Herb是对的,最好直接设置&lt;td>的样式。我要做的是以下几点:

<style type="text/css">
   #mytable tr > td:first-child { color: red;} /* first column */
   #mytable tr > td:first-child + td { color: green;} /* second column */
   #mytable tr > td:first-child + td + td { color: blue;} /* third column */
   </style>
   </head>
   <body> 
   <table id="mytable">
    <tr>
      <td>text 1</td>
      <td>text 2</td>
      <td>text 3</td>
    </tr>
    <tr>
      <td>text 4</td>
      <td>text 5</td>
      <td>text 6</td>
    </tr>
    </table>

但是,这在IE中不起作用。

在尝试为表格设置样式时通读了此内容,以使第一列为粗体文本,而其他四列为普通文本。
使用col标记似乎是可行的方法,但是虽然我可以使用width属性设置列的宽度,但是font-weight:bold却不起作用
感谢我们向我指出解决方案的方向。
通过对所有td元素td {font-weight:bold;}进行样式设置,然后使用相邻的同级选择器选择第2-5列,并将其样式设置为正常的td + td {font-weight:normal;}
瞧,一切都很好:)