CSS邻近兄弟选择器,Safari和<nav>元素

13t*_*lve 11 html css safari html5 css-selectors

在Safari 5.1.3中,我刚刚注意到,当编写CSS邻近兄弟选择器(+一个)并引用一个<nav>元素时 - 浏览器无法兑现CSS.

所以:

h1 + p { ... } /* works fine */
h1+p { ... } /* works fine */
Run Code Online (Sandbox Code Playgroud)

h1 + nav { ... } /* works fine */
h1+nav { ... } /* but, does NOT work */
Run Code Online (Sandbox Code Playgroud)

我用其他html 5元素(部分,文章,旁边)测试了这些,它们似乎工作正常.直到你把一个导航元素放入混合; 然后就打破了.这是一个jsfiddle.

这令人沮丧,因为我的铁路资产包装商正在缩小css并取出不必要的空间.这不是IE7,Firefox,Chrome或Opera的问题 - 但Safari 5 ..

其他人有类似的吗?知道为什么?知道一种修复方法吗?

Bol*_*ock 6

这绝对是一个Safari bug,您应该使用Safari> Report Bugs向Apple报告它...在Mac上或帮助>向 PC 报告错误...在PC上(或工具栏按钮,如果它显示在Safari工具栏上) .

如果Asset Packager有一个选项,最简单的方法是禁用CSS缩小.

如果没有这样的选项,则存在快速而肮脏的解决方法:如果您只有一个nav元素直接跟随您h1,则可以使用通用兄弟选择器,~因为Safari似乎没有任何问题:

h1 ~ nav { ... } /* works fine */
h1~nav { ... } /* works fine */
Run Code Online (Sandbox Code Playgroud)

jsFiddle预览

如果您有多个nav元素h1,则必须nav使用后续元素手动覆盖样式h1 ~ nav ~ nav.