CSS列表样式

时间:2020-03-06 14:28:56  来源:igfitidea点击:

我正在使用YUI重置/基础,重置后将ul和li标签设置为列表样式:光盘在外面;

我的标记如下所示:

<div id="nav">
     <ul class="links">
         <li><a href="">Testing</a></li>
     </ul>

</div>

我的CSS是:

#nav {}
#nav ul li {
    list-style: none;
 }

现在,这使得每个li旁边的小碟片都消失了。

为什么这行不通呢?

#nav {}
 #nav ul.links 
 {
      list-style: none;
 }

如果我删除了base.css文件的链接,它会起作用,为什么?

已更新:sidenav-> nav

解决方案

不应该是:

#nav ul.links

也许样式是base.css用"!important"覆盖样式?我们是否尝试过向该特定li添加一个类并为其创建自己的样式?

在第一个代码段中,将列表样式应用于li元素,在第二个代码中应用于ul元素。

尝试

#nav ul.links li
{
  list-style: none;
}

由于CSS的特殊性,后一个示例可能无法正常工作。 (可以在这里找到更详细的解释。)也就是说,YUI的base.css规则是:

ul li{ list-style: disc outside; }

这比更为"具体",因此正在使用YUI规则。如前所述,我们可以通过定位li标签来使规则更具体:

#nav ul li{ list-style: none; }

不用看代码就很难确定,但是如果我们不了解特异性,那肯定值得一读。

使用这个:

.nav ul li {
    list-style: none;
}

或者

.links li {
    list-style: none;
}

它应该工作...

我认为Dan与他的答案很接近,但这不是特定性的问题。我们可以在列表(UL)上设置列表样式,但也可以为单个列表项(LI)覆盖该列表样式。

我们告诉浏览器不要在列表上使用项目符号,但是YUI告诉浏览器在各个列表项上使用项目符号(YUI获胜):

ul li{ list-style: disc outside; } /* in YUI base.css */

#nav ul.links {
    list-style: none; /* doesn't override styles for LIs, just the UL */
}

我们想要的是告诉浏览器不要在列表项上使用它们:

ul li{ list-style: disc outside; } /* in YUI base.css */

#nav ul.links li {
    list-style: none;
}