【问题标题】::empty pseudoclass when adding dynamic content:empty 伪类添加动态内容时
【发布时间】:2012-03-15 15:44:18
【问题描述】:

我在sitepoint pagequirksmode page 中读到了关于新的:empty 伪类的信息。

Sitepoint 表示即使附加了动态内容,空样式仍然会生效。值得注意的是,Firefox 就是这种行为方式。

Quirksmode 表示当它填充一些元素或文本时,它会丢弃空状态。这个网站上的演示可以在我的浏览器(chrome 19)中运行。所以我假设只有 firefox 会出错。

但是我的插件中有这段代码,它用项目动态填充列表,它似乎不起作用,here's a fiddle 附加列表项目,即使你点击按钮,项目也不会' t 出现,直到您尝试在控制台中调试它(当您单击元素树中的 <li> 时,它们神奇地出现)。

为什么会发生这种情况,是否有“强制丢弃”空样式的解决方法?

我知道还有其他方法可以做我正在做的事情(目前正在做这些“其他方法”之一),但是:empty 方法要容易得多。

更新

添加了删除项目按钮。当最后一项被删除时,列表应该消失 - 仍然不起作用。嗯..我会尝试在另一个浏览器中检查。

修复

使用:emptydisplay:none 的临时修复/替代方法是使元素具有零widthheightbordersmarginspaddings。此外,position:absolute 将其从流程中删除。

【问题讨论】:

  • 直到现在我还没有遇到:empty,并为一个有趣的问题 +1。
  • 嗯,它们出现在 FX10 中。

标签: css pseudo-class


【解决方案1】:

您提供的小提琴适用于 FF10 和 IE9。它只在 Chrome (18+) 中失败

不知道为什么会发生这种情况,因为 quirksmode 页面也可以在 Chrome 中运行..

对于 force-discard,它似乎可以通过使用代码设置几乎任何 css 属性来实现..

http://jsfiddle.net/gaby/YprUV/9/ 的示例

更新

好的,我发现这个 Chrome bug report:empty 选择器在与 display:none 一起使用时行为异常

它被标记为已修复,但也许我们应该重新打开它..

这是一个不使用 display:none 的测试(它只是改变了背景颜色),它工作得很好。http://jsfiddle.net/YprUV/11/

【讨论】:

  • 刚刚在 Opera 11.61 和 IE9 中测试过。好像是 Chrome 的问题。我正在考虑明确添加display:block 以使其工作。
猜你喜欢
  • 1970-01-01
  • 2014-05-10
  • 2014-09-13
  • 2012-09-06
  • 1970-01-01
  • 2013-04-16
  • 1970-01-01
  • 2012-08-05
  • 1970-01-01
相关资源
最近更新 更多