【问题标题】:Hyper link Color-styling in CSSCSS中的超链接颜色样式
【发布时间】:2021-02-05 15:52:18
【问题描述】:

超链接的初始颜色是蓝色,即访问选择器的颜色。但是背景颜色是黑色的,即链接选择器的颜色。此外,访问链接一次后,文本颜色保持应有的蓝色,但背景不会变为透明。

这是样式代码:

<style>
a:link {
  color: pink;
  background-color: black;
  text-decoration: none;
}
a:visited {
  color: blue;
  background-color: transparent;
  text-decoration: none;
}
a:hover {
  color: red;
  background-color: transparent;
  text-decoration: underline;
}
a:active {
  color: yellow;
  background-color: transparent;
  text-decoration: underline;
}
</style>
</head>
<body>

<h2>Link Colors</h2>

<a href="html_images.asp" target="_self">HTML Images</a> 

</body>
</html>

我无法理解链接选择器的行为。为什么格式不明确,并且从两个不同且独占的选择器中得到随机混合输出?

【问题讨论】:

    标签: html css hyperlink


    【解决方案1】:

    已访问:已访问过的链接(存在于浏览器历史中),使用:visited 伪类设置样式。

    因此,如果您至少访问过一次您的链接,它将始终是visited

    您可以阅读有关此here 的更多信息。

    【讨论】:

    • 如果是这样,那为什么访问的伪类的背景颜色属性不适用?
    • 那是因为伪类的颜色是透明的,试试换成别的颜色吧。
    • 另外,:visited 和 :link 应该只在颜色上有所不同,而不在不透明度上有所不同。检查这个linkSEC7115
    【解决方案2】:

    您需要为锚标记添加一些背景颜色,并添加 link withvisited 以便visited 像 a:visited:link 一样工作。试试下面的 CSS:

    a:link {
      color: pink;
      background-color: black;
      text-decoration: none;
    }
    a:visited:link {
      color: blue;
      background-color: transparent !important;
      text-decoration: none;
    }
    a:hover {
      color: red;
      background-color: transparent;
      text-decoration: underline;
    }
    a:active {
      color: yellow;
      background-color: transparent;
      text-decoration: underline;
    }
    
    a {
      background-color: #fff;
    }
    

    【讨论】:

    • a:visited:link 有它自己的问题。它不会将此处的文本颜色更改为蓝色,而是选择默认访问的颜色,即紫色。此外,当我将背景颜色添加到锚标记时,为visited:link 创建一个伪类变得无关紧要。
    猜你喜欢
    • 2013-05-06
    • 2020-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-27
    • 2014-08-15
    • 2013-01-02
    • 2015-02-28
    相关资源
    最近更新 更多