一个div的CSS链接干扰另一个?

时间:2015-08-18 13:02:00

标签: css

我有div #postdiv #nav。帖子是一个div,与nav无关。问题是#post正在使用#nav链接样式。

有什么问题?

https://jsfiddle.net/2w92bLnf/

#post{
 width:100%;
 border:1px solid #D4DFE7;
 padding:15px;
 box-sizing: border-box;   
 margin-bottom:10px;
 background-color:#fff;
}
#post img{
 width:100%;
}


#nav a:link, a:visited, a:hover{
 text-decoration: none;
 border:1px solid #ddd;
 background-color:#fff;
 padding:3px;
 padding-left:6px;
 padding-right:6px;
 margin-right:5px;
}
#nav a:hover{
 background-color: #ff0000;
 color:#fff;
}
.selectnav{
 background: #ffff00;
}

<div id=post>
    <a href=#>test</a>
</div>

2 个答案:

答案 0 :(得分:4)

#nav a:link,
a:visited,
a:hover

应该是:

#nav a:link,
#nav a:visited,
#nav a:hover

否则,:visited:hover样式将应用于所有a元素,无论它们是否位于#nav元素内。

JSFiddle demo

答案 1 :(得分:1)

正确的代码在这里“#nav a:link,#nav a:visited,#nav a:hover {”

#post{
  width:100%;
  border:1px solid #D4DFE7;
  padding:15px;
  box-sizing: border-box;   
  margin-bottom:10px;
  background-color:#fff;
}
#post img{
  width:100%;
}


#nav a:link, #nav a:visited,#nav a:hover{
   text-decoration: none;
   border:1px solid #ddd;
   background-color:#fff;
   padding:3px;
   padding-left:6px;
   padding-right:6px;
   margin-right:5px;
 }
 #nav a:hover{
    background-color: #ff0000;
    color:#fff;
 }
.selectnav{
   background: #ffff00;
 }

<div id=post>
    <a href=#>test</a>
</div>