内联样式在CSS中充当:hover

时间:2020-03-06 14:42:19  来源:igfitidea点击:

我知道将CSS样式直接嵌入到它们会影响的HTML标记中会破坏CSS的许多目的,但有时对于调试目的很有用,例如:

<p style="font-size: 24px">asdf</p>

嵌入规则的语法是什么:

a:hover {text-decoration: underline;}

放入A标签的样式属性中?显然不是这个...

<a href="foo" style="text-decoration: underline">bar</a>

...因为这将一直适用,而不是仅在悬停期间适用。

解决方案

恐怕无法完成,伪类选择器无法内联设置,我们必须在页面或者样式表上进行设置。

我应该提到,从技术上讲,我们应该能够按照CSS规范进行操作,但是大多数浏览器都不支持它

编辑:我只是对此进行了快速测试:

<a href="test.html" style="{color: blue; background: white} 
            :visited {color: green}
            :hover {background: yellow}
            :visited:hover {color: purple}">Test</a>

而且它不适用于IE7,IE8 beta 2,Firefox或者Chrome。其他人可以在其他任何浏览器中进行测试吗?

如果仅调试,则可以使用javascript修改css:

<a onmouseover="this.style.textDecoration='underline';" 
    onmouseout="this.style.textDecoration='none';">bar</a>

如果是用于调试,则只需添加一个css类进行悬停(因为元素可以具有多个类):

a.hovertest:hover
{
text-decoration:underline;
}

<a href="http://example.com" class="foo bar hovertest">blah</a>

我也不认为jQuery也支持伪选择器,但它确实提供了一种将事件添加到单个页面上的一个,多个或者所有相似控件和标记的快速方法。

最重要的是,我们可以链接事件绑定,并根据需要在一行脚本中完成所有操作。与手动编辑所有HTML来打开或者关闭HTML相比,它要容易得多。再说一次,由于我们可以在CSS中进行相同的操作,因此我不知道它可以为我们带来任何收益(除了学习jQuery外)。