【问题标题】:Problems using the '#' to identify tags in a master/content/css page combination使用“#”标识主/内容/css 页面组合中的标签时出现问题
【发布时间】:2010-08-09 11:30:42
【问题描述】:

我想将我的网页的设计和实现分离成单独的 HTML 和 CSS 文件(以便于维护)。

我在项目中定义了以下页面。

<%@ Page Title="" Language="C#" MasterPageFile="~/STGGeneral.Master" AutoEventWireup="true" CodeBehind="Register.aspx.cs" Inherits="SystemManager.Register" %>

这引用了以下 CSS 文件

#UsernameLabel
{
    position: absolute; 
    top: 10px; 
    left: 10px;
}

问题在于,当 ASP.NET 生成发送到浏览器的代码时,它会发送以下内容

   <!-- Login Popup -->
   <input type="image" name="ctl00$LoginButton" id="ctl00_LoginButton" class="LoginButton" src="Images/key.png" style="border-width:0px;" />

   <div id="ctl00_LoginFormPanel" class="LoginPanel">   
        <div id="ctl00_UpdatePanel1">                           
                <span id="ctl00_LabelUsername">UserId:</span>
                <input name="ctl00$UsernameTextBox" type="text" id="ctl00_UsernameTextBox" />            
                <span id="ctl00_LabelPassword" class="StandardLabel">Label</span>
                <input name="ctl00$PasswordTextBox" type="text" id="ctl00_PasswordTextBox" />
                <input type="image" name="ctl00$ConfirmLoginButton" id="ctl00_ConfirmLoginButton" class="ConfirmLoginButton" UseSubmitBehavior="false" src="Images/Security.png" style="border-width:0px;" />                
        </div>
   </div>

因为我的“用户名”标签现在被 ASP.NET 称为 ctl00_LabelUsername,所以定位此代码的样式不再有效。

有没有办法告诉 ASP.NET 我不希望它更改我的对象的名称,或者如何在由主/内容页面组合生成的页面中使用“#”进行引用。

【问题讨论】:

  • 你有什么理由不只使用一个类吗?

标签: asp.net html css master-pages


【解决方案1】:
【解决方案2】:

如果你不使用 ASP.NET 4.0,你可以给标签一个类,比如

LabelUsername.CSSClass = "LabelClass";

否则,您可以尝试使用 CSS 选择器,例如 -

.LoginPanel span
{
  // CSS Propeties for the label.
}

【讨论】:

    【解决方案3】:

    很简单。您将您的 css 更改为引用 ctl00_LabelUsername

    【讨论】:

    • 简单,但不健壮。您不能相信创建 id 的方式将来会保持不变。
    • 哦 - 坏主意。 ctl00_ 是一个意外,可能会改变。
    • 永远不要这样做。如果您将 LabelUsername 移动到不同的容器中,这将中断。这是一场全面的维护噩梦。
    • -1,如果您添加嵌套母版页,或者想在具有不同母版页的另一个页面上使用此 ID,它将中断。
    • 哇,这么多自以为是的 cmets。问题询问如何在 css 中引用标签。这就是答案给出的。我注意到没有人真正给出了一个有意义的选择。
    猜你喜欢
    • 1970-01-01
    • 2015-10-06
    • 1970-01-01
    • 2014-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-27
    • 1970-01-01
    相关资源
    最近更新 更多