CSS3:在li中显示/隐藏图标

时间:2014-06-21 13:42:08

标签: html css css3

我有使用css hover的显示/隐藏图标代码:

HTML:

<li>
   <span class="tools"><a href="javascript:void()"><i alt="Delete" title="Delete" class="icon-remove-sign" onclick=deleteBox("1")></i></a></span>
</li>

CSS:

.box .todo-list > li> a> .tools {
  display: none;
  float: right;
  color: #f56954;
}
.box .todo-list > li> a:hover .tools {
  display: inline-block;

}

现在这不工作,不隐藏我的图标。如果我从代码中移除> a>,这可以隐藏但是当添加a>时没有工作。 我怎么能解决这个问题?

3 个答案:

答案 0 :(得分:3)

您的CSS选择器略有错误,请尝试:

.box .todo-list > li > .tools > a

.box .todo-list > li > .tools > a:hover 

选择器部分需要与它们选择的元素嵌套在HTML中的顺序相同。

查看W3C Selectors文档了解更多详情。

答案 1 :(得分:0)

>选择器表示直接后代

在您的标记中,li直接后代span.tools

因此,li > a不会选择任何内容。

但是,li > .tools > a 选择a元素。

可在此处找到一篇优秀的文章:Child and Sibling Selectors

答案 2 :(得分:0)

上面的>选择器是子组合子选择器。这意味着它只会选择父项的直接子元素。换句话说,它只看到标记结构的一个级别,没有更深的。

所以

.box .todo-list > li > .tools > a