【问题标题】:CSS ID Selector not working but Class Selector doesCSS ID 选择器不起作用,但类选择器起作用
【发布时间】:2010-02-21 11:59:44
【问题描述】:

我遇到了一个问题,即当我使用“ID”选择器 (#btnOK) 时未应用样式。但是,如果我使用类选择器(.btnOK,通过将 CSS 文件中的“#btnOK”更改为“.btnOK”),就会应用样式。

知道为什么吗?该样式也应用于设计模式,但不适用于运行时。它正在查找 css 文件,否则将不会应用该类。 ID 区分大小写匹配。

在网页中:

<link href="CSS/CvCost.css" rel="stylesheet" type="text/css" />

<asp:Button ID="btnOK" CssClass="btnOK" runat="server" Text="OK" ValidationGroup="Add"/>

在 CSS/CvCost.css 中:

#btnOK{
    margin-right:5px;
    margin-top:5px;
    float:right;
    width:75px;
    height: 25px;
}

【问题讨论】:

  • 你能发布实际的 HTML吗?
  • 查看呈现的html页面的源代码。我相信服务器端标签的id被修改为asp.net引擎可以理解的东西。
  • 你的问题足以让我找到答案。 btn 控件已重命名为 ctl00_phPageContent_btnOK。嗯...在我看来,当我使用母版页时,ID 选择器不会很方便。建议?

标签: asp.net css


【解决方案1】:

ASP.Net 将根据元素的容器自动生成唯一 ID。

您需要使用 ASP.Net 的实际 ClientID。
由于您无法在外部 CSS 文件中执行此操作,因此您应该只使用类选择器。

如果您使用的是 ASP.Net 4,您还可以将新的 ClientIDMode 属性设置为 Static

【讨论】:

  • 很高兴了解 ClientIDMode 属性,谢谢。我期待三月份的发布。
  • 我尝试与您尝试做的相同的事情,是的,很难完成,所以我切换到课堂以获得我想要的。样式 ID 适用于非 .Net 对象,也许有人可以解释原因。
【解决方案2】:

如果我没记错的话,代码运行/调试时将显示的 ID 与 #btnOK 不同。 VS 会在代码运行时给它另一个 ID。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-24
    • 2014-06-28
    • 2017-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-08
    相关资源
    最近更新 更多