我在CSS中面临一个问题,我有一个table并在表的tr上盘旋,一个CSS是为框影编写的。问题是这个框影对于偶数行不是完全可见的。

由于下一个td元素,框影的底部正在隐藏。它能处理一些奇怪的行。
下面是问题的代码沙箱链接。
我试过用位置相对和z指数,但这对我不起作用。有什么想法吗?
发布于 2020-09-22 11:28:53
例如,使用drop-shadow而不是box-shadow:
table {
font-family: arial, sans-serif;
border-collapse: collapse;
width: 100%;
}
td,
th {
border: 1px solid #dddddd;
text-align: left;
padding: 8px;
}
tr:hover {
filter: drop-shadow(0 0 0.275rem rgba(255, 0, 0, 0.75));
}
tr:nth-child(even) {
background-color: #dddddd;
}
tr:nth-child(odd) {
background-color: #ffffff;
}<h2>HTML Table</h2>
<h4>
Onmouseover on the even row the box shadow is not completely visible
</h4>
<table>
<tr>
<th>Company</th>
<th>Contact</th>
<th>Country</th>
</tr>
<tr>
<td>Alfreds Futterkiste</td>
<td>Maria Anders</td>
<td>Germany</td>
</tr>
<tr>
<td>Centro comercial Moctezuma</td>
<td>Francisco Chang</td>
<td>Mexico</td>
</tr>
<tr>
<td>Ernst Handel</td>
<td>Roland Mendel</td>
<td>Austria</td>
</tr>
<tr>
<td>Island Trading</td>
<td>Helen Bennett</td>
<td>UK</td>
</tr>
<tr>
<td>Laughing Bacchus Winecellars</td>
<td>Yoshi Tannamuri</td>
<td>Canada</td>
</tr>
<tr>
<td>Magazzini Alimentari Riuniti</td>
<td>Giovanni Rovelli</td>
<td>Italy</td>
</tr>
</table>
发布于 2020-09-22 10:59:32
请试试这个,
第一方法
将
position:relative添加到tr:将{.}与z-index:2悬停。还将position:relative添加到td{.}z-index:1中。
,那是
tr:hover {
box-shadow: 0 0 10px 3px rgba(255, 0, 0, 0.5);
-moz-box-shadow: 0 0 10px 3px rgba(255, 0, 0, 0.5);
-webkit-box-shadow: 0 0 10px 3px rgba(255, 0, 0, 0.5);
position: relative;
z-index:2;
}
tr td{
position: relative;
z-index:1;
}现场演示
tr:hover {
box-shadow: 0 0 10px 3px rgba(255, 0, 0, 0.5);
-moz-box-shadow: 0 0 10px 3px rgba(255, 0, 0, 0.5);
-webkit-box-shadow: 0 0 10px 3px rgba(255, 0, 0, 0.5);
position: relative;
z-index:2;
}
tr td{
position: relative;
z-index:1;
}<!DOCTYPE html>
<html>
<head>
<style>
table {
font-family: arial, sans-serif;
border-collapse: collapse;
width: 100%;
}
td,
th {
border: 1px solid #dddddd;
text-align: left;
padding: 8px;
}
tr:hover {
box-shadow: 0 0 10px 3px rgba(255, 0, 0, 0.5);
}
tr:nth-child(even) {
background-color: #dddddd;
}
</style>
</head>
<body>
<h2>HTML Table</h2>
<h4>
Onmouseover on the even row the box shadow is not completely visible
</h4>
<table>
<tr>
<th>Company</th>
<th>Contact</th>
<th>Country</th>
</tr>
<tr>
<td>Alfreds Futterkiste</td>
<td>Maria Anders</td>
<td>Germany</td>
</tr>
<tr>
<td>Centro comercial Moctezuma</td>
<td>Francisco Chang</td>
<td>Mexico</td>
</tr>
<tr>
<td>Ernst Handel</td>
<td>Roland Mendel</td>
<td>Austria</td>
</tr>
<tr>
<td>Island Trading</td>
<td>Helen Bennett</td>
<td>UK</td>
</tr>
<tr>
<td>Laughing Bacchus Winecellars</td>
<td>Yoshi Tannamuri</td>
<td>Canada</td>
</tr>
<tr>
<td>Magazzini Alimentari Riuniti</td>
<td>Giovanni Rovelli</td>
<td>Italy</td>
</tr>
</table>
</body>
</html>
第二种方法
使用box-shadow作为嵌入
box-shadow: inset 0 0 10px 3px rgba(255, 0, 0, 0.5);
tr:hover {
box-shadow: inset 0 0 10px 3px rgba(255, 0, 0, 0.5);
-moz-box-shadow: inset 0 0 10px 3px rgba(255, 0, 0, 0.5);
-webkit-box-shadow: inset 0 0 10px 3px rgba(255, 0, 0, 0.5);
}<!DOCTYPE html>
<html>
<head>
<style>
table {
font-family: arial, sans-serif;
border-collapse: collapse;
width: 100%;
}
td,
th {
border: 1px solid #dddddd;
text-align: left;
padding: 8px;
}
tr:nth-child(even) {
background-color: #dddddd;
}
</style>
</head>
<body>
<h2>HTML Table</h2>
<h4>
Onmouseover on the even row the box shadow is not completely visible
</h4>
<table>
<tr>
<th>Company</th>
<th>Contact</th>
<th>Country</th>
</tr>
<tr>
<td>Alfreds Futterkiste</td>
<td>Maria Anders</td>
<td>Germany</td>
</tr>
<tr>
<td>Centro comercial Moctezuma</td>
<td>Francisco Chang</td>
<td>Mexico</td>
</tr>
<tr>
<td>Ernst Handel</td>
<td>Roland Mendel</td>
<td>Austria</td>
</tr>
<tr>
<td>Island Trading</td>
<td>Helen Bennett</td>
<td>UK</td>
</tr>
<tr>
<td>Laughing Bacchus Winecellars</td>
<td>Yoshi Tannamuri</td>
<td>Canada</td>
</tr>
<tr>
<td>Magazzini Alimentari Riuniti</td>
<td>Giovanni Rovelli</td>
<td>Italy</td>
</tr>
</table>
</body>
</html>
发布于 2020-09-22 11:07:23
移除此样式
tr:nth-child(even) {
background-color: #dddddd;
}如果您移除此样式,它将工作。
table {
font-family: arial, sans-serif;
border-collapse: collapse;
width: 100%;
}
td,
th {
text-align: left;
padding: 8px;
}
tr:hover {
box-shadow: 0 0 10px 3px rgba(255, 0, 0, 0.5);
position: relative;
}
tr:nth-child(even) {
background-color: #dddddd;
}
tr:hover {
box-shadow: 0 0 10px 3px rgba(255, 0, 0, 0.5);
position: relative;
}
table {
border-collapse: separate;
border-spacing: 0px 8px;
}<!DOCTYPE html>
<html>
<head>
</head>
<body>
<h2>HTML Table</h2>
<h4>
Onmouseover on the even row the box shadow is not completely visible
</h4>
<table>
<tr>
<th>Company</th>
<th>Contact</th>
<th>Country</th>
</tr>
<tr>
<td>Alfreds Futterkiste</td>
<td>Maria Anders</td>
<td>Germany</td>
</tr>
<tr>
<td>Centro comercial Moctezuma</td>
<td>Francisco Chang</td>
<td>Mexico</td>
</tr>
<tr>
<td>Ernst Handel</td>
<td>Roland Mendel</td>
<td>Austria</td>
</tr>
<tr>
<td>Island Trading</td>
<td>Helen Bennett</td>
<td>UK</td>
</tr>
<tr>
<td>Laughing Bacchus Winecellars</td>
<td>Yoshi Tannamuri</td>
<td>Canada</td>
</tr>
<tr>
<td>Magazzini Alimentari Riuniti</td>
<td>Giovanni Rovelli</td>
<td>Italy</td>
</tr>
</table>
</body>
</html>
https://stackoverflow.com/questions/64007773
复制相似问题