【问题标题】:JQM and CSS overridesJQM 和 CSS 覆盖
【发布时间】:2016-09-15 12:28:46
【问题描述】:

我正在使用导航元素来创建菜单。我也在使用 JQM 来格式化列表视图。 JQM 的 CSS 覆盖了导航样式,我根本无法理解为什么。

这是我的带有链接元素的导航元素:

<nav>
    <ul>
        <li><a href="new.html">New</a></li>
        <li><a href="update.html">Update</a></li>
    </ul>
</nav>

这是 nav 元素内链接元素的 CSS:

nav > ul > li > a {
    color: #aaa;
    background-color:#333;
    display: block;
    line-height: 2em;
    padding: 0.5em 0.5em;
    text-decoration: none;
}

颜色属性被 JQM 样式表覆盖(变成蓝色)。具体覆盖设置已确定为:

.ui-page-theme-a a:visited, html .ui-bar-a a:visited, html .ui-body-a a:visited, html body .ui-group-theme-a一个:访问{ 颜色:#38c; }

我不明白为什么会被覆盖? JQM 样式有一些我没有在导航元素中指定的特定类,那么为什么我会丢失颜色设置?为什么将 JQM 样式应用于我的非分类链接/导航?

注意:在这些事情上我完全是菜鸟,所以请原谅我的无知

【问题讨论】:

  • 据我所知,它只说明了 :visited 状态,您尚未在自己的 css 中声明。

标签: html css jquery-mobile


【解决方案1】:

JQM 样式可能是由它的脚本添加的。一旦您启动该元素,它就会获得分配给它的类。

之所以否决是因为选择器更具体。如果您想了解更多关于特异性的信息,请关注this link

如果你想推翻 JQM 风格,你有几个选择

又快又脏

使用!important 规则,它会覆盖所有其他样式

nav > ul > li > a {
    color: #aaa !important;
    background-color:#333;
    display: block;
    line-height: 2em;
    padding: 0.5em 0.5em;
    text-decoration: none;
}

后一规则

使用相同的选择器,但请确保您的样式表 JQM 样式表之后加载

.ui-page-theme-a a:visited, 
html .ui-bar-a a:visited, 
html .ui-body-a a:visited, 
html body .ui-group-theme-a a:visited {
    color: #aaa;
}

【讨论】:

  • 甚至在具体之前,为什么 JQM 规则适用于我的导航元素中的“a”?如果我对 CSS 的理解正确,那么 JQM 样式中的“a”规则应该仅适用于“a”元素位于 .ui-page-theme-a | 类之一下的情况。 .ui-bar-a | .ui-body-a | .ui-group-theme-a,而我的导航元素中的“a”不属于任何这些类?
  • jQuery 可以为元素添加类,也可以在页面加载后,或者在点击、悬停等时添加。如果您使用 Firefox,请右键单击元素 >“检查元素”。然后你可以看到元素有哪些类。
  • 谢谢!在重新阅读您的第一个回复后,我自己也注意到了这一点。它向我的“a”元素添加了类,并且还在整个页面中添加了一个带有类的 div 元素。暴行!
猜你喜欢
  • 1970-01-01
  • 2016-05-14
  • 2019-11-22
  • 2021-09-21
  • 2023-04-01
  • 1970-01-01
  • 2013-11-29
  • 1970-01-01
相关资源
最近更新 更多