【发布时间】:2019-05-27 18:17:07
【问题描述】:
我目前正在处理从背景到背景渐变的悬停过渡。但我希望它改变表格行,而是改变表格的整个背景。
这里是JSFiddle,显示当您将鼠标悬停在表格行上时会发生什么
我尝试过使用显示块来改变表格行背景,但它会弄乱我的整个表格行。
表格背景发生变化,但只需要改变表格行。
.container #table {
width: 100%;
font-weight: bold;
border-spacing: 0px 15px;
}
.container #table tr {
position: relative;
background-color: #273240;
z-index: 1;
}
.container #table tr::before {
position: absolute;
content: "";
top: 0;
left: 0;
right: 0;
bottom: 0;
background: linear-gradient(to right, #0089e0, #c0c1c1);
z-index: -1;
transition: opacity 0.5s linear;
opacity: 0;
}
.container #table tr:hover::before {
opacity: 1;
}
.container #table tr th {
height: 35px;
font-size: 10px;
text-align: left;
font-weight: bold;
text-transform: uppercase;
background-color: #273240;
}
.container #table tr th:nth-child(n+5) {
width: 75px;
}
.container #table tr td {
padding: 0px;
font-size: 12px;
font-style: italic;
}
.container #table tr td:first-child {
width: 25px;
font-style: normal;
font-weight: 500;
padding-left: 25px;
}
.container #table tr td div {
max-height: 70px;
padding: 25px 0px;
transition: max-height 0.5s, padding 0.5s;
}
.container #table tr td i {
font-size: 12px;
}
<div class="container">
<table id="table">
<tr>
<th></th>
<th>POS</th>
<th>TEAM</th>
<th>DRIVER</th>
<th>MUG</th>
<th>SPA</th>
<th>BRN</th>
<th>POR</th>
<th>BAR</th>
<th>TOT</th>
</tr>
<tbody>
<tr>
<td></td>
<td>1ST</td>
<td>PROSPORT PERFORMANCE (85)</td>
<td>ROBERT RENAUER</td>
<td>24</td>
<td>28</td>
<td>33</td>
<td>-</td>
<td>-</td>
<td>85</td>
</tr>
</tbody>
</table>
</div>
【问题讨论】:
-
那是因为您不能将
tr的position设置为relative。 stackoverflow.com/a/6746339/863110。为什么你还需要::before? -
用不透明度伪造过渡,因为背景过渡不适用于渐变。我应该用 div 代替表格吗?
-
也许this 会有所帮助。