【问题标题】:How does CSS work with ASP.NET web controls?CSS 如何与 ASP.NET Web 控件一起使用?
【发布时间】:2011-03-26 15:43:25
【问题描述】:

假设我有一个带有 Menu Web 控件的 aspx 页面。菜单 Web 控件在浏览器上呈现为 html 表格。我的计划是在将发送到浏览器的 aspx 页面上添加 css 样式。假设我在 aspx 页面中添加了以下样式

td
{
    background-color: Red;
}

此样式与渲染的 html 表格一起发送到浏览器

<table>
   <tr>
       <td>...</td>
       <td>...</td>
   </tr>
   <tr>
       <td>...</td>
       <td>...</td>
   </tr>
</table>

但是没有应用样式。我真的很困惑为什么会这样。一般来说,我们如何预测 CSS 对 ASP.NET wen 控件的影响?

【问题讨论】:

    标签: asp.net css


    【解决方案1】:

    这不是 ASP.NET 问题。是的,您是正确的,CSS 不适用于服务器端控件,因为它们出现在您的 ASPX/ASCX 标记中。它们适用于生成的 HTML。大多数 ASP.NET 控件都有一个属性 CssClass,其中设置 CssClass="n" 会将 class="n" 添加到它们生成的一些 html 标记中。因此,您可以编写 css 规则以使用 .n { ... }

    来定位它们

    但无论如何,在这种情况下,您还没有包含在问题中的其他事情正在发生。我建议使用 Firebug,定位您希望设置样式的

    ,然后查看应用了哪些 CSS 样式。从那里调试。

    也许其他一些 CSS 规则具有优先权。也许您的 CSS 规则打错了,或者实际上没有包含在内。 Firebug 是追踪此类错误的好工具。

    为了证明发生了其他事情,我验证了您的示例 HTML+CSS 是否有效:

    <html>
    
    <style>
        td { background-color: blue }
    </style>
    
    <body>
    
    <table>
       <tr>
           <td>...</td>
           <td>...</td>
       </tr>
       <tr>
           <td>...</td>
           <td>...</td>
       </tr>
    </table>
    
    </body>
    </html>
    

    【讨论】:

      【解决方案2】:

      也许你可以在 div 中使用,你可以从 div 中给出一个样式,比如:

      风格:

      #div td{ .... }
      

      html:

      <div id="myDiv">
       <table>
        <tr>
         <td></td>
        </tr>
       </table>
      </div>
      

      【讨论】:

        【解决方案3】:

        菜单会覆盖一些样式。

        大多数 ASP.NET 控件都公开了一个 CssClass 属性,您应该使用它来为控件分配样式。

        【讨论】:

        • 您好,感谢您的回复。我的理解是 css 用于处理 html 标签,而不是真正用于 ASP.NET Web 控件。在 CssClass 样式中,我们是否只应该将 Web 控件已经公开的样式定义为属性?不支持其他样式?
        • @user370401:哦,支持样式。也许这个资源会有所帮助:msdn.microsoft.com/en-us/library/ms366731.aspx
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-12-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-14
        • 2012-10-15
        相关资源
        最近更新 更多