【问题标题】:CSS li a:visited overriding hover state on mobileCSS li a:visited 覆盖移动设备上的悬停状态
【发布时间】:2020-01-30 18:20:52
【问题描述】:

我在访问链接和悬停状态时遇到问题。我网站底部的社交媒体图标有一个:列表悬停状态设置为红色。用户访问链接后,它仍然是白色的。在移动设备上,因为悬停状态并不是真正的东西,所以没有红色。但是,当单击其中一个社交图标时,它仍然是红色的。我尝试将访问的颜色设置为白色,这消除了图标剩余红色问题。但是,回到桌面设备意味着悬停状态停止工作。

这是代码:

footer li a:hover {
color: #e91d26;
}

footer li a:active {
color: #fff;
}

footer li a:link {
color: #fff;
}

footer li a:visited {
color: #fff;
}

附上一张图片,显示移动设备上的问题,页脚 li avisited 已被注释掉。

a:visited white commented out

【问题讨论】:

  • 将您的 footer li a:hover 声明移动到底部,:visited 下方。
  • 我看到您正在避免添加任何额外的类,但我认为在已经访问过的类中添加类似 .visitedLi 之类的内容不会有什么坏处,并且可能有助于您的事业

标签: css mobile hover desktop visited


【解决方案1】:

这只是一个CSS Specificity 问题。

要解决此问题,只需将您的 footer li a:hover 声明移至底部 footer li a:visited 下方。

像这样:

footer li a:active {
    color: #fff;
}

footer li a:link {
    color: #fff;
}

footer li a:visited {
    color: #fff;
}

/* Move : hover down here.. */
footer li a:hover {
    color: #e91d26;
}

或者您可以在:hover 声明中将!important 添加到color 属性中,但这更像是一种技巧,不建议这样做..

/* not suggested... but would work */

footer li a:hover {
    color: #e91d26; !important;
}

【讨论】:

  • 感谢您对保持红色的悬停状态进行排序,但在移动设备上,当您点击其中一个图标然后返回网站后,它仍然是红色。如果您明白我的意思,我希望它变回白色或保持白色:hopeful-goldberg-c5d951.netlify.com
  • 你是什么意思,“它仍然是红色的?”即使您没有将鼠标悬停在它上面,它仍然是红色的?
  • 抱歉选词不当。悬停状态工作正常。没有悬停在手机上。单击(触摸)其中一个图标将打开应用程序/站点。返回主网站。查看您单击(触摸)的社交图标,它是红色的。我希望它是白色的。对不起,如果我不清楚!
  • 哦……我明白你的意思了……我相信这是浏览器的一个功能……出于可访问性目的。你可以在这里查看另一篇关于它的 SO 帖子:stackoverflow.com/questions/24495551/…
  • @SimonLowes ,如果你觉得我回答了你的问题,你介意选择它作为接受的答案吗?
猜你喜欢
  • 1970-01-01
  • 2015-11-04
  • 2019-09-15
  • 2018-03-01
  • 1970-01-01
  • 2014-10-18
  • 2013-11-30
  • 1970-01-01
  • 2014-06-23
相关资源
最近更新 更多