- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
示例代码:http://jsfiddle.net/RuQNP/
<!DOCTYPE html>
<html>
<head>
<title>Foo</title>
<style type="text/css">
a:link, a:visited {
color: blue;
}
a:hover, a:active {
color: red;
}
.foo a:link, .foo a:visited {
color: green;
}
/* A possible fix */
/*
.foo a:hover, .foo a:active {
color: red;
}
*/
</style>
</head>
<body>
<div class="foo">
<a href="http://example.com/">Example</a>
</div>
</body>
</html>
我所期待的:
悬停时链接会显示为红色。
我得到的:
悬停时链接显示为绿色。
问题:
.foo a:link, .foo a:visited
中定义的color
选择器覆盖 a:hover, a:active
中的选择器?这是怎么回事? .foo a:link, .foo a:visited
选择器这样它就不会覆盖 a:hover, a:active
?color
如果我明白http://www.w3.org/TR/CSS21/cascade.html#specificity正确地(感谢 BoltClock),这是代码中各种选择器的特异性表。
a:link - 0 0 1 1
a:visited - 0 0 1 1
a:hover - 0 0 1 1
a:active - 0 0 1 1
.foo a:link - 0 0 2 1
.foo a:visited - 0 0 2 1
因此,当 link
和 时,为
伪类应用于 .foo a:link
定义的样式会覆盖 a:hover
的样式>hoverfoo
类的 A 元素。
同样,当 visited
和 时,为
伪类应用于 .foo a:visited
定义的样式会覆盖 a:hover
>hoverfoo
类的 A 元素。
最佳答案
当您第一次开始使用 CSS 时,您可能已经了解了 LoVe-HAte 助记符,用于指定链接选择器的顺序(a:link
、a:visited
, a:hover
, a:active
).你有没有想过为什么选择这个助记词?
嗯,spec 中有一条注释关于当使用所有这些规则的多个规则应用于同一元素时如何处理链接和动态伪类,这解释了为什么需要按该顺序设置链接选择器:
Note that the A:hover must be placed after the A:link and A:visited rules, since otherwise the cascading rules will hide the 'color' property of the A:hover rule. Similarly, because A:active is placed after A:hover, the active color (lime) will apply when the user both activates and hovers over the A element.
无论如何,我在上面试图说明的一点是所有四个伪类,作为伪类,具有相同的特异性。关于特异性的其他一切都适用。在这种情况下,从一堆同样具体的选择器中,应用最后一个规则。每个伪类何时或如何被触发是无关紧要的。
现在,.foo
选择器的简单介绍会导致您的第二组链接/访问规则覆盖您的第一组链接/访问样式和悬停/事件样式,强制具有该类的元素中的链接始终显示为绿色,直到您使用 .foo
选择器添加悬停/事件样式。
很抱歉,如果我的回答看起来有些含糊或草率,我现在正在我的 iPhone 上输入这个,这里很难想清楚...
关于css - 为什么.foo a :link, .foo a :visited {} selector override a:hover, a :active {} selector in CSS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7371732/
正如您在此 JSFiddle 中看到的那样,当您将鼠标悬停在 text-content 上时; opacity img 和 img 类返回到正常状态,我想保持 :hover 来自 img 和 img
在 Safari 上,CSS :hover 在具有固定位置的子级在父级外部打开然后关闭后仍然处于事件状态。 鼠标重新进入悬停区域后,它再次起作用。 演示:http://jsfiddle.net/HSC
使用 JQuery,当元素处于悬停状态时,我尝试链接几个函数。 我通常会使用.hover事件函数,但在阅读了一些教程后,我使用 .on 阅读了该函数更好,因为您可以使用一个事件处理程序来监视文档中的所
我已经解决了很多具有相似标题的已解决问题,但我尝试的似乎都没有用。 我希望将 ava.png 图像重定向到另一个页面,但是在悬停时我想要一个 :before 图像(ava_background_hoo
使用以下 html,当我将鼠标悬停在子对象上时,父对象的背景为绿色。我怎样才能阻止这种情况发生?如果我悬停在子元素之外,我确实需要绿色背景。 CSS3 很好。 .parent { padding:
我有两个默认设置为隐藏的子元素。 .child1, .child2{ visibility:hidden; } #parent :hover .child1, #parent:hover .child
所以我试图让我的分页在悬停时平滑地滑动,然后在鼠标离开元素后滑回其原始位置。我已经让它在悬停时滑动,但是当鼠标离开按钮时,它只是快速返回而不是过渡。有人可以帮我解决这个问题吗? 这是我的代码。 #pa
我有一个 jQuery 问题;我想通过将鼠标悬停在另一个元素上来触发元素上的 :hover 事件,控制台显示错误: Uncaught RangeError: Maximum call stack si
我正在挖掘某人编写的一些 css 代码,我发现了这个: li.hover, li:hover { } .hover 和 :hover 有区别吗? 也许某些浏览器对 hover 的行为不同?! 最佳答案
使用以下 html,当我将鼠标悬停在子对象上时,父对象的背景为绿色。我怎样才能阻止这种情况发生?如果我悬停在子元素之外,我确实需要绿色背景。 CSS3 很好。 .parent { padding:
找不到我一直想知道的问题的答案。 .class2 a:hover {} 和 .class2:hover a {} 有区别吗?还是偏爱其中之一? 我一直在使用 .class2 a:hover {} 来改
我不确定标题是否足够好地解释它,但我试图保持简短! 因此,我在页面上散布了许多图像,并为它们创建了一个灯箱画廊(.cboxElement 是调用它的类)。我想添加的是对受灯箱影响的每个图像的悬停效果,
.vpbutton {padding:4px;background-color:#EFEFEF;} .userbox img{padding:8px;background-color:#EFE
我无法让 a:hover 元素正常工作。我是业余爱好者,所以请放轻松...我也尝试过使用#menubar:hover,但这似乎也不起作用。 此代码将进入另一个程序的 header 。我进入这个的唯一原
我到处寻找这个问题的答案,但我找不到任何相关信息。谁能告诉我我们是否可以影响接收元素悬停边界半径属性的区域。以便在击中真实区域查看元素后发生颜色等变化的效果?不要阻止在 DOM 中作为正方形物理存在?
谁能看出我在这里做错了什么? 我在 中有一些文本元素我想要 text-decoration:none在什么时候 悬停在。请参阅下面的 HTML,我认为它应该可以工作,但是当我将鼠标悬停在 上时文字
我正在尝试创建一个可缩放的 map ,当鼠标悬停在 map 图像上时它会工作,类似于 map 在 Flickr 上的工作方式(请参阅右侧栏上的 map - http://www.flickr.com/
我有一张 table ,我有一个用于 tr:hover 效果的全局 css 代码。但有时我不想在我的 table 上使用这种悬停效果。请查看代码并告诉我如何不对该表运行效果。 JSFIDDLE .这里
我重新开发了我们的一个页面,我注意到它在 上使用悬停元素,尽管点击事件是针对 的标签。所以我将其更改为悬停在 上标签。当鼠标快速移动到每个元素上时,需要相当长的时间才能 catch 。我想没有人
我从来都不是 javascript 下拉菜单的忠实粉丝,所以当我可以使用 CSS 设计下拉菜单时,我会的。但是现在我遇到了一个小问题。 我有一个登录按钮和一个小的登录表单模块,它是按钮的兄弟。当我将鼠
我是一名优秀的程序员,十分优秀!