这是一个非常简单的CSS特异性问题,但我真的无法以某种方式弄清楚。
在我的样式表中,我有一个简单的规则,可以从列表中删除列表样式:
ul { list-style: none; }
然后,对于某些列表,我想指定一个列表样式,但无论如何,它只是不会覆盖上述规则?
#product ul { list-style: bullet !important; }
问题是 UL 通常会被输入到 CMS 中的所见即所得框中,我不想强迫用户必须用 html 编写并给 UL 一个特定的 ID,所以我们经常会得到这样的代码:
<div id="product">
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
</ul>
</div>
我有点惊讶这不起作用,除了使用 javascript 为 $('#product ul') 提供特定的类或 css 样式之外,没有办法解决这个问题吗?
--
JSBIN: http://jsbin.com/ohuzuz/4
--
编辑:哎呀,对不起,我有:
<div id="#product">
JSBIN中的一个临时错误,但不是我的原始代码。我的错误,但问题确实是无效的
list-style: disc
bullet
不是有效的列表样式类型值。
另外,如果这不是问题所在,请检查您是否在任何地方都没有li
样式。li
元素的样式将覆盖ul
元素的样式,无论其特殊性如何。
您的ID有误
改变:
id="#product"
自:
id="product"
这是正确的代码。您有错误的 id #product 应该是您的div 中的产品。
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>JS Bin</title>
<!--[if IE]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<style>
article, aside, figure, footer, header, hgroup,
menu, nav, section { display: block; }
ul { list-style: none; }
#product ul, #product ul li { list-style: disc; }
</style>
</head>
<body>
<p id="hello">Hello World</p>
<div id="product">
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
</ul>
</div>
</body>
</html>
我会选择这样的东西,
ul { list-style:none; }
#product ul {list-style:disc inside none; }
看起来你的 html 中有一个额外的字符
<div id="#product">
取下#
,它应该可以工作。