tho*_*i56 18 css css-selectors
我有一个由#id标识的区域,并且有一个像:
#id ul li {
margin:0;
}
Run Code Online (Sandbox Code Playgroud)
对于该领域的特定UL,我可以覆盖边距设置吗?我知道#id在评估格式时会产生非常高的优先级.
我试过了:
.myclass ul li {
margin-left: 20px;
}
Run Code Online (Sandbox Code Playgroud)
和
#id ul.myclass {
Run Code Online (Sandbox Code Playgroud)
以及
#id li.myclass {
Run Code Online (Sandbox Code Playgroud)
它甚至可能吗?
Sco*_*ttS 21
我同意SWilk,!important尽可能避免(这里有可能).SWilk没有提供的其他一些解决方案是:
#id ul.myclass li {
Run Code Online (Sandbox Code Playgroud)
要么...
#id ul li.myclass {
Run Code Online (Sandbox Code Playgroud)
关键是增加选择器的特异性,以及上述SWilk的解决方案.原始解决方案不起作用的原因是您没有包含其他标记(ul或li),也没有#id包含您添加的标记.myclass.
在显示结构的评论后添加:
如果您的HTML是这样的(正如您在评论中所述):
<div id="ja-col2">
<div>....
<ul class="latestnews">
<li class="latestnews">
Run Code Online (Sandbox Code Playgroud)
你现在的css是(如另一条评论所述):
#ja-col1 ul li,
#ja-col2 ul li {
margin:0; padding-left:15px;
}
#ja-col2 .latestnews ul li, /*does not exist*/
.latestnews #ja-col2 ul li, /*does not exist*/
.latestnews ul li, /*does not exist*/
ul.latestnews li.latestnews {
list-style:disc outside url("../images/bullet.gif");
margin-left:15px; padding-left:15px;
}
ul li { line-height:180%; margin-left:30px; }
Run Code Online (Sandbox Code Playgroud)
您没有看到任何更改的原因是因为您的html结构中不存在三个选择器路径,并且通过特异性获胜的那个是第一个组.你需要:
#ja-col2 ul.latestnews li
Run Code Online (Sandbox Code Playgroud)
要覆盖#ja-col2 ul li.
.myclass ul li {
margin-left: 20px !important;
}
Run Code Online (Sandbox Code Playgroud)
应该做的伎俩:)