【问题标题】:IE8 :after not working with jQuery selectorIE8:在不使用 jQuery 选择器之后
【发布时间】:2012-10-10 21:57:02
【问题描述】:

我试图在 IE8 中使用:last-child,但在阅读了关于这里的几个线程之后,确定,它只是没有发生'bub。所以 - 我采用了下一个最佳路线,即使用 jQuery 使用 CSS 附加到 last-child 类上,执行以下操作:

$('.section-header > span:last-child').addClass('last-child');

它确实在 IE8 中添加了适当的类。但是,当我去设计那种风格时,它似乎不起作用。这在网站上的几个地方很明显,located here(与 Chrome 等真正体面的浏览器相比):

  • 顶部导航,未删除 <li> 项目上的最后一个 border-right 属性
  • #top-grid 不添加箭头(使用:before:after
  • .section-header 未应用 padding-left 我已为 :last-child.last-child 指定(使用 jQuery 完成)
  • 日历,未向选定选项卡添加顶部边框颜色

所以 - 显然有很多不一致的领域 - 我并不是真的在寻找“这是您如何单独修复每个问题的方法”,更多的是“这是您对 IE8 缺少的概念”。我已经尝试过声明一个文档类型(另一个线程已经提到过),但是几个小时后,你开始把自己逼疯了 :) 我真的很感激任何朝着正确方向的轻推。谢谢!

【问题讨论】:

  • 看看 Selectivizr,它应该将最后一个子元素添加到 IE6-8 selectivizr.com
  • @Rick Calder:已知 IE8 与 :last-child:after 存在问题,即使使用 Selectivizr :(
  • 该死的...不知道。哦,好吧,我至少用“应该”来限定它

标签: css internet-explorer-8 cross-browser


【解决方案1】:

问题是您将:last-child.last-child 选择器分组在同一个规则集中。这会导致 IE8 由于 :last-child 部分而忽略整个规则集,这意味着它也会忽略您的 .last-child 部分。

既然您使用 jQuery 来添加类,您不妨删除选择器中的 :last-child 部分,让它在所有浏览器中都能正常工作。

或者,如果您希望禁用脚本的浏览器看到您的 :last-child 规则,则必须拆分选择器并为每个选择器复制样式规则。

【讨论】:

  • 哇——这正是问题所在。很高兴知道未来(未来,我的意思是直到 IE8 慢慢痛苦地死去)。非常感谢!
  • 其他浏览器在遇到不支持的选择器时通常表现相同,因为这都是规范的一部分。这包括前缀。小心!
猜你喜欢
  • 2013-03-08
  • 1970-01-01
  • 1970-01-01
  • 2011-03-17
  • 1970-01-01
  • 1970-01-01
  • 2010-10-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多