无论如何,是否可以在Firefox的querySelector()或querySelectorAll()函数中使用伪选择器来检测可见性?我特别希望能够执行以下操作:
elem.querySelector('#list .list-item:visible');
elem.querySelector('#section .sub-section:visible .title');
无需担心浏览器不一致或其他实现,仅需担心Firefox。谢谢!
EDIT:可见性由display不为none和visibility不为hidden定义。
无论如何,是否可以在Firefox的querySelector()或querySelectorAll()函数中使用伪选择器来检测可见性?我特别希望能够执行以下操作:elem ....
不,没有。 The CSS specification未定义:visible
(或相关的)选择器,并且AFAIK Firefox不实现非标准的伪选择器。
由于:visible伪选择器没有本地含义,所以我决定使用CSS类来隐藏和显示我的元素,因此允许仅检查类名而不是可见性。这是我的选择器现在的样子:
使用普通的javascript,您还可以轻松地模拟jQuery的行为,将querySelector结果转换为数组,然后对其进行过滤:
为了查找不是display:none
的元素,与:visible
等效的CSS选择器为
检查元素是否可见,在所有主流浏览器上都支持:
您可以使用offsetParent
值确定元素是否可见。