【发布时间】:2012-10-03 05:41:45
【问题描述】:
我面临一个非常奇怪的问题。根据我对 CSS ">" 的理解,选择器基本上只将样式应用于直接子代。但我根本无法将样式应用于元素。奇怪的是,在检查元素时,我可以看到 firebug 中的其他 CSS 部分,但我看不到应用的“>”样式。
我拥有的 HTML 是:
<div id="navigation">
<ul>
<li><a href="#">First</a></li>
<li><a href="#">Second</a></li>
<li><a href="#">Third</a></li>
<li><a href="#">Fourth</a></li>
</ul>
</div>
CSS 部分是这样的:
/* Navigation */
#navigation {
min-height:45px;
}
#navigation ul {
list-style-type: none;
margin: 0px 45px 0px 0px;
font-weight: bold;
border-left-width: 1px;
border-left-style: solid;
border-left-color: #F3F3F3;
}
#navigation ul li {
margin: 0px;
float: left;
position: relative;
}
#navigation > ul > li {
line-height: 26px;
display: block;
}
#navigation > ul > li > a {
border-right: 1px solid #F3F3F3;
color: #333;
display: block;
font-family: 'Trebuchet MS';
font-size: 15px;
padding: 10px 18px 13px;
position: relative;
text-decoration: none;
z-index: 1000;
}
#navigation > ul > li.current_page_item > a,
#navigation > ul > li.current_page_parent > a,
#navigation > ul > li.current_page_ancestor > a {
border-top: 3px solid #72AC4B;
color: #72AC4B;
font-family: 'Trebuchet MS';
margin-top: -3px;
}
所有其他样式都照常应用,但使用“>”选择器的样式块根本无法识别。所以假设如果我检查li 元素,我可以看到应用了以下样式:
#navigation ul li {
margin: 0px;
float: left;
position: relative;
}
但我看不到应用了以下样式:
#navigation > ul > li {
line-height: 26px;
display: block;
}
即使它是 ul 的直接子代。有没有人遇到过这个问题?这可能是什么原因造成的?
【问题讨论】:
-
我已经用 chrome 和 firefox 对此进行了测试,我已经在页面顶部添加了
<!DOCTYPE html>。 -
你用的是什么浏览器?你的 css 很好,它可以在我尝试过的浏览器中运行。
-
做了一个fiddle。按预期工作。
-
您是否尝试过清除浏览器缓存? Control-shift-delete/Command-shift/删除
-
@MBozic 感谢您的回复,我试过这是 Chrome 和 Firefox,但两种浏览器都存在同样的问题,顺便说一句,这是一个 wordpress 主题。
标签: html css css-selectors