用于链接的css选择器

时间:2015-12-18 03:00:56

标签: html css css-selectors

当您在链接上时,是否存在可用的CSS选择器。例如,如果我在我的网站的主页上,它被称为default.aspx并且页面上有一个链接到default.aspx我希望它重新格式化default.aspx链接。我还没有看到CSS选择器。我甚至不知道是否可能,但如果是,我希望有人知道。如果有一种方法可以在没有css选择器的情况下执行此操作,请告诉我相关内容。

1 个答案:

答案 0 :(得分:4)

同一/当前页面没有特定的CSS选择器。但是还有其他选项可以选择指向特定页面/锚点的链接(尽管您可能正在寻找^= attribute selector)。你可以这样做:

  • a[href="default.aspx"](考虑到你在default.aspx)。

    这将选择 href值正好是default.aspx 的所有链接(a标记)。这仅包括类型为<a href="default.aspx">...</a>

    的链接
    • 优点:具体。
    • 缺点:非常具体;它只会在href中选择具有该确切文本的锚点,而不会选择default.aspx#之类的东西。
  • a[href^="default.aspx"](考虑到你在default.aspx)。

    这将选择 href值以default.aspx 开头的所有链接。其中包括以下类型的链接:<a href="default.aspx">...</a><a href="default.aspx?somekey=somevalue">...</a><a href="default.aspx#something">...</a>等。

    • 优点:它涵盖了多个案例。
    • 缺点:它也排除了多个案例(例如,即使它们是您想要的类型,它也不会选择http://mysite/default.aspx类型的链接。
  • a[href*="default.aspx"](考虑到你是default.aspx)

    这将选择 href包含字符串default.aspx 的所有链接(它在哪个位置无关紧要)。其中包括<a href="default.aspx">...</a><a href="http://mysite/default.aspx">...</a><a href="https://mysite/default.aspx?key=value">...</a>等链接

    • 优点:这是您可以使用的最通用的,将选择包含页面名称的所有内容。
    • 缺点:它过于通用,可能会选择您不想要的链接(例如:<a href="page2.aspx?source=default.aspx">...</a>也会被选中,即使它没有指向链接所在的同一页面)。
  • a[href^="#"]

    这将选择指向页面内锚点的链接( href值以#开头)。由于锚点位于同一页面内,因此您无需指定文件名。其中包含以下链接:<a href="#something">...</a>

    • 优点:它只选择页面中锚点的链接。
    • 缺点:它只选择页面中锚点的链接。

考虑到第一个选择器的具体程度,以及第三个选择器的具体情况,我会选择第二个和第四个选择器的组合:

a[href^="default.aspx"], 
a[href^="#"] {
    // styles to highlight links to self
}

此解决方案仍然特别适用于default.aspx(其他页面的default.aspx链接也会突出显示)。一种替代方法是使用特定于选择器中每个页面的类。例如,如果default.aspx具有类.default,而page1具有类.page1等,则:

.default a[href^="default.aspx"], 
.page1 a[href=^="page1.aspx"],
a[href^="#"] {
    // styles to highlight links to self
}