【问题标题】:ASP.NET HyperLink instead of LinkButton - how to avoid border around image?ASP.NET HyperLink 而不是 LinkBut​​ton - 如何避免图像边框?
【发布时间】:2010-10-01 11:16:31
【问题描述】:

我有一个 ASP.NET 网站,其中包含一些 ImageButton 控件,这些控件会导致用于将产品列表过滤到某些产品组的回发。

ImageButton 是这样创建的:

ImageButton _myImageButton = new ImageButton();
_myImageButton.ImageUrl = PicturePath + PictureName;
_myImageButton.Attributes.Add("border", "0");
_myImageButton.OnClick += handleImageButtonClick();
Controls.Add(_myImageButton);

现在我正在迁移到 ASP.NET 4.0,并使用像 /products/category/item 这样的 SEO 友好路径,并且我正在使用带有 Web 表单的路由来将 URL 映射到 Web 表单。在此过程中,我想用显示图像的超链接控件替换我的图像按钮,以便我可以将导航 URL 与每个图像相关联。

我正在创建我的新图像超链接,如下所示:

HyperLink _myImageLink = new HyperLink();
_myImageLink.ImageUrl = PicturePath + PictureName;
_myImageLink.NavigateUrl = "/products/category/" + itemName;
_myImageLink.Attributes.Add("border", "0");
Controls.Add(_myImageLink);

我面临的大问题:ImageButton 曾经在 HTML 中的 <img> 标记上放置 border="0" 属性以避免图像周围出现边框。但是如何使用超链接控件达到同样的效果呢??

在当前设置下,border="0" 会卡在 <a href="...."> 标记上 - 这并不是我想要/需要的。

有什么想法吗??想法??我已经尝试了 HyperLink 类的 .BorderStyle.BorderWidth 元素 - 似乎对我不起作用(我仍然看到我的图像周围有边框)。

我错过了什么?我怎样才能实现我的目标??

【问题讨论】:

    标签: asp.net webforms asp.net-4.0 hyperlink webforms-routing


    【解决方案1】:

    该属性不会自动插入到 ASP.NET 4.0 中,因为它已被弃用;您应该改用 CSS 将有问题的 img 标记设置为没有边框。一种可能的建议是将其设置在 a 标签内的 img 标签上:

    a img{
      border: none;
    }
    

    【讨论】:

    • 这应该在
    • 好的,这成功了(在“好”刷新之后:-) - 感谢您的提示!
    【解决方案2】:

    好像你不知道边界的原因。

    这只是来自 URL <a>

    一个简单的 CSS 可以解决这个问题:

    a {
      text-decoration: none;
    }
    

    或者您可以将text-decoration: none; 设置为您的imageLink 风格

    myImageLink.Attributes.Add("style", "text-decoration: none");
    

    【讨论】:

    • 试过了 - 属性显示在 HTML 中 - 但这并没有解决问题 - 图像周围仍然有边框.....
    【解决方案3】:

    与其设置超链接的ImageUrl 属性,不如将图像添加为超链接的子项,这样您仍然可以在其上设置所需的所有属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-05
      • 1970-01-01
      • 2015-12-21
      • 1970-01-01
      • 2017-09-22
      相关资源
      最近更新 更多