【问题标题】:Setting a css class for TD为 TD 设置一个 css 类
【发布时间】:2009-02-09 15:19:49
【问题描述】:

我正在使用一个自定义的用户控件(我没有修改权限),它呈现一个表格的 HTML,如下所示:

<tr>
  <td></td>
  <td></td>
</tr>

它让我可以在标签中动态添加任何控件。我的问题是如何为表格单元格设置单元格的样式。通常,我会做&lt;td class="myClass"&gt;。由于我没有修改它的源代码,我使用的解决方法是创建一个&lt;div&gt;,设置CSS 类并将其添加到&lt;td&gt;。代码如下所示:

  HtmlGenericControl divControl = new HtmlGenericControl("div");
  divControl.Attributes.Add("class", "myClass");
  //Add a textbox to divControl.
  //Add the divControl to the customized user control

这并没有给我预期的 UI。

【问题讨论】:

    标签: asp.net html


    【解决方案1】:

    如果可以,只需在生成表之前添加一个 DIV。外部 div 的类名将被 TD 元素继承:

    <div class="MyClassName">
       //table code here
    </div>
    

    那么你可以像下面这样使用CSS:

    .MyClassName TD { //CSS here }
    

    【讨论】:

      【解决方案2】:

      尝试使用 SPAN 而不是 DIV。 DIV 是一个块级元素,它带有一些额外的格式化包袱。 SPAN 是一个内联元素,不会像 DIV 那样改变表示语义。

      您也可以使用分层 CSS 选择器来实现相同的效果,而无需将表格元素的内容包装在容器中。如果您的 CSS 类同样适用于所有表格元素,这可能是正确的,但如果它们适用于某些而不适用于其他元素,则将无法正常工作。

      【讨论】:

        【解决方案3】:

        将控件添加到页面的控件树后,您可以使用它的“父”属性将树向上添加到表格控件。

        NewDynamicControl.Parent.Parent.Parent.Attributes.Add("class", "myClass")
        

        这假设您非常了解要添加的用户控件的外观,并且不会被其他人更改并最终破坏您的代码。

        【讨论】:

          猜你喜欢
          • 2010-09-26
          • 1970-01-01
          • 1970-01-01
          • 2022-06-27
          • 1970-01-01
          • 2015-11-22
          • 2017-06-27
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多