【问题标题】:Inherit css property of a:link on to asp:label text attribute将 a:link 的 css 属性继承到 asp:label 文本属性
【发布时间】:2009-01-21 15:15:13
【问题描述】:

好的,这可能是一个不可能的问题,但我正在向现有 cms 系统添加一个用户控件(Kentico 使用他们的 InlineControl 基类),并且我添加了一个标签,我已经覆盖了点击事件以在其下方显示一个 div 区域.我遇到的问题是继承颜色的已经设置的css属性,font-family;等等......从父页面到标签的文本。

我尝试在标签周围放置一个<a href=""></a>,它确实继承了正确的属性,但现在它需要单击并重定向,因为它遵循空白href。如果我只是将标签包装在 /a 中,它不会继承,因为 css 类正在寻找 a href 标记。

非常感谢任何帮助。

【问题讨论】:

  • 这就是我在使用 asp.net 时遇到问题的原因...预先存在完全有效且易于理解的结构。现在你可以陷入这种混乱。他们抽象了公共接口。 :(

标签: asp.net css


【解决方案1】:

好的,如果我理解正确,您希望标签文本像页面上的链接一样呈现?根据您正在开发的浏览器,它可能无法理解:link:hover 之类的内容。如果您有以下 CSS:

a, label { color: blue; } // NOT a:link as only <a> tags can have href
a:hover, label:hover { text-decoration: underline; }

..您已经完成了一部分(IE6 除外)。尝试在标签中或标签周围添加&lt;a&gt; 标记时,您的另一个问题是点击事件应用于&lt;label&gt; 标记而不是&lt;a&gt; 标记,因此链接被正常跟踪。如果您改用链接或两者的组合,请确保覆盖链接上的点击事件 return false 以停止跟踪链接。

我的偏好是将链接放在标签内,然后希望相关的表单字段将获得焦点以及显示的 div。你也不会有任何 IE6 样式问题。

【讨论】:

    【解决方案2】:

    使用&lt;asp:HyperLink &gt; 代替&lt;asp:Label &gt; 控件。这将呈现为 html 作为锚 (&lt;a &gt;),因此样式正确。

    此外,根据您的受众和您正在做的事情,这一切都可以在 javascript 中完成,而不是强制回发到服务器以重新呈现可见的 div。

    【讨论】:

      猜你喜欢
      • 2015-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多