2017-06-01 163 views
0

嗨,我有这一块的CSS:CSS样式不起作用

tbody:hover td { 
    color: transparent; 
    text-shadow: 0 0 3px #aaa; 
} 

tbody:hover tr:hover td { 
    color: #444; 
    text-shadow: 0 1px 0 #fff; 
} 

当我将鼠标悬停表我想,该表的其他行变得透明了一排。这个CSS为普通的td充满了文本,但对于填充了链接(一个标签)的td不起作用。我找不到原因。

这是HTML代码

<tbody> 
    <tr> 
     <td>Untitled.txt</td> 
     <td>File di prova</td> 
     <td><a href='/comment/comment.php?idF=182' style='color: black;'>Leggi i commenti</a></td>   
     <td><a href='get_file.php?id=182' style='color: black;'>Download</a></td> 
    </tr> 
</tbody> 
+1

请分享html代码 – Ehsan

+0

如果我删除了tbody:hover,css根本不起作用 – Interseba5

+0

您需要将锚色设置为继承{color:inherit},以便获取父级的颜色 – karthick

回答

1

这很简单。你的标签有嵌入式样式。那些在CSS等级中排名很高。那么,为什么这不工作的原因是这段代码:

style='color: black;' 

删除内联样式,并通过类应用它来代替。

+0

非常感谢,我是一个noob – Interseba5

1

的一部分,我不知道是否有可能让别人使用CSS透明只(CSS不能在以前的兄弟姐妹效应)。但是,您不能使用:hover两次,除非你做这样的事情:

tbody tr:hover > td, tbody tr:hover > td a { 
    color: #444; 
    text-shadow: 0 1px 0 #fff; 
} 

为了寻找透明度问题的解决方案,你可以尝试使用nth-child()来决定哪些孩子会悬停改变。例如:

tbody tr:nth-child(1):hover { 
    color: transparent; 
    text-shadow: 0 0 3px #aaa; 
} 

您也可以决定怎么办时,该元素是不徘徊,例如:

tbody tr:nth-child(1):not(:hover) { 
    // If element is not hovered 
    color: transparent; 
    text-shadow: 0 0 3px #aaa; 
} 
0

尝试使用inherit属性:

a { 
    color: inherit !important; //important just for extra measure 
} 
+0

谢谢,我不把它标记为解决方案,因为在HTML中还有另一个更重要的错误,另一个解决它 – Interseba5

+0

啊该死的。没关系。 – TheDarkKnight

0

我想你应该把CSS中的标签也是如此。

tbody:hover td, tbody:hover td a { 
    color: transparent; 
    text-shadow: 0 0 3px #aaa; 
}