使用 CSS 忽略 CSS :hover, :active, :focus 声明
Ignoring CSS :hover, :active, :focus declarations with CSS
我有几个链接,点击后会打开一个子菜单。这是通过在样式表中:hover
、:focus
和:active
声明来实现的。
效果与此相同:http://www.cssplay.co.uk/menus/cssplay-click-flyout.html。
问题是,虽然CSS实现可以工作,但存在各种缺点,我想用JavaScript修复这些缺点。我正在使用 YUI 3.5.0 作为我的 JavaScript 库。是否可以使用 JavaScript 忽略样式表中的:hover
、:focus
和:active
声明?
我知道我可以将这些声明放入一个单独的类中,并使用 JavaScript 更改元素的类,但这对我来说似乎不是很干净。
我知道我可以将这些声明放入一个单独的类中,并使用 JavaScript 更改元素的类,但这对我来说似乎不是很干净。
这就像它得到的那样干净。一个不太卫生的解决方案是复制通用规则中的样式并将它们直接注入到元素中。
我认为更改类的解决方案是最干净的,但只有例如您可以使用javascript覆盖悬停:
使用 jQuery:
$('#js').hover(
function() { $(this).css('color', 'blue'); },
function() { $(this).css('color', 'black'); }
);
请参阅此示例。
没有jQuery:
document.getElementById('js').onmouseenter = function() {
this.style.color = 'blue';
}
document.getElementById('js').onmouseleave = function() {
this.style.color = 'black';
}
另请参阅此示例。
与 YUI 一起:
Y.one('#js').on('mouseenter', function(e) {
e.currentTarget.setStyle('color', '#00f');
});
Y.one('#js').on('mouseleave', function(e) {
e.currentTarget.setStyle('color', '#000');
});
另请参阅此示例。
相关文章:
- CSS-如何定位内容数据标题
- 窗口大小html css
- 如果文本字段为空,则使用JavaScript应用CSS样式
- 动画.CSS重播
- 有没有一种方法可以防止img get请求使用css或js发生
- CSS表格:从列平移到整个表格宽度
- CKEditor-我在editor.css中的风格是't
- 单击更改图标并通过javascript添加一个css类
- 将CSS应用于printWindow.print();在Javascript中
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- CSS-若窗口太小,滚动条会出现在“表格”单元格上
- css(或jQuery)悬停时淡入淡出
- 为什么不'在JQuery中找到第二个css选择器的工作
- 为什么 .focus() 不起作用,而 .css(“color”,“red”) 在同一个选择器上起作用
- 如何使用css动画/javascript使具有背景图像的元素出现
- 获取HTML属性中CSS声明的值
- 当我更改Joomla时,它仍然从旧域加载CSS和Javascript
- 使用 CSS 忽略 CSS :hover, :active, :focus 声明
- 为什么调用focus()会破坏我的CSS转换
- 改变CSS会破坏Javascript Focus()方法