1

是否可以使用属性选择器来部分搜索内联样式属性?

谁能找到让这段代码工作的方法?

http://jsfiddle.net/v4xPY/1/

似乎不可能做到这一点.hidden[style*="display: block"] + .below,甚至也不可能[style]

4

1 回答 1

2

您尝试使用的属性选择器不是合法的 CSS,尽管它是一个 jQuery 属性选择器。据我所知,CSS 仅限于[attribute=value],[attribute~=value][attribute|=value]. (derp,见下文)

但是,由于您已经在使用 jQuery 来切换hiddendiv,因此同时在 div 上切换一个类会简单得多below,而不是与属性选择器搏斗(除非它有更多功能) .

修改后的 jQuery:

$(function() {
  $('html').click(function() {
    $('.hidden').slideToggle();
    $('.below').toggleClass('yellow');
  });
});​

和 CSS:

/* Margin of Below should reduce when hidden is opened */
.yellow {
  margin-top: 10px; 
  background: yellow;
} ​

在这里拉小提琴

编辑:好的,我对属性选择器有点不了解,它是合法的 CSS3;我不知道浏览器支持的细节,但我猜它会在所有常见的“现代”浏览器中得到支持。style此外,IE7专门针对该属性显然存在问题。在http://www.impressivewebs.com/attribute-selectors/上有一篇很好的文章。

再一次:虽然我找不到任何明确证实这一点的东西,但看起来属性选择器只适用于实际硬编码到 html 中的属性;基本上它只是解析字符串,而不是检查 dom 元素的“状态”吗?

于 2012-10-09T00:53:03.350 回答