【问题标题】:Table Column Formatting表格列格式
【发布时间】:2010-09-14 12:57:15
【问题描述】:

我正在尝试使用 <col/> 元素格式化 <table/> 中的列。我可以设置background-colorwidth等,但不能设置font-weight。为什么它不起作用?

<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>

【问题讨论】:

    标签: css css-tables col


    【解决方案1】:

    据我所知,您只能在 &lt;col&gt; 元素上使用 CSS 格式化以下内容:

    • 背景色
    • 边框
    • 宽度
    • 可见性

    这个page 有更多信息。

    Herb 是对的 - 最好直接设置 &lt;td&gt; 的样式。我要做的是:

    <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 中不起作用。

    【讨论】:

    • 在我看来,您对问题的设计有点过度。为什么不创建一个“红色”、“绿色”和“蓝色”类?这适用于任何地方,并且比高级 CSS 选择器更直观。
    • 是的,你的 CSS 选择器很丑 :) 但我个人更喜欢丑陋的 CSS 选择器,而不是必须为每个表格单元格添加类属性,特别是如果你有一个静态表格(即没有服务器涉及侧生成)有很多细胞。
    • 唉,这会破坏 colspan 的语义。这就是 colcolgroup 元素的全部意义所在,为什么你不能使用它们设置颜色?!
    【解决方案2】:

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

    <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 }
    

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

    【讨论】:

    • 这个方法很好用。我只是想避免为每个第一列 td 放置一个 class 属性。
    【解决方案3】:

    你可能刚需要这个:

    tr td:first-child label {
        font-weight: bold;
    }
    

    【讨论】:

      【解决方案4】:

      您是否尝试过通过 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>
      

      Reference for the col element

      【讨论】:

      【解决方案5】:

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

      【讨论】:

        【解决方案6】:

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

        【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-31
        • 2011-05-20
        • 1970-01-01
        • 2020-04-18
        • 2015-10-23
        相关资源
        最近更新 更多