CSS 相邻兄弟选择器、Safari 和 <nav> 元素

标签 css html safari css-selectors

在 Safari 5.1.3 中,我刚刚注意到,在编写 CSS 相邻兄弟选择器(呃 + 一个)和引用 <nav> 时元素 - 浏览器无法遵守 CSS。

所以:

h1 + p { ... } /* works fine */
h1+p { ... } /* works fine */

h1 + nav { ... } /* works fine */
h1+nav { ... } /* but, does NOT work */

我已经用其他 html 5 元素(部分、文章、旁白)测试了它们,它们似乎工作正常。直到您将导航元素放入组合中;然后它坏了。这是一个jsfiddle .

事实证明这令人沮丧,因为我的 Rails Assets 打包器正在缩小 css 并删除不必要的空间。这不是 IE7、Firefox、Chrome 或 Opera 的问题 - 但 Safari 5..

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

最佳答案

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

如果 Asset Packager 有相应选项,最简单的方法是禁用 CSS 缩小。

如果它没有这样的选项,则有一个快速而肮脏的解决方法:如果你只有一个 nav紧跟在您的 h1 之后的元素, 您可以使用 general sibling selector ~ 相反,因为 Safari 似乎没有任何问题:

h1 ~ nav { ... } /* works fine */
h1~nav { ... } /* works fine */

jsFiddle preview

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

关于CSS 相邻兄弟选择器、Safari 和 <nav> 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9318474/

相关文章:

macos - 如何使用 Safari 在我的 Mac 应用程序中调试 WKWebView?

ios - iOS 应用程序中 WebView 内的电话链接

jquery - 如何使我的导航栏静态(向下滚动时固定在页面顶部)?

html - 为文本链接提供背景图片?

php - 单击时使文本段落成为可编辑的文本区域

php - 使用 Jquery 发送帖子 ID

javascript - 如何对 ng-repeat 内的动态文本框值求和

css - 如何将类添加到 CodeIgniter anchor

jquery - 如何使用css3为div设置动画

css - Safari 似乎忽略了 CSS