简体   繁体   中英

How to fix gradient transition on hover

I'm currently working on a hover transition from background to background gradient. But I want it to change the table row but instead it changes the whole background of the table.

Here's JSFiddle to show what happens when you hover on the table row

I've tried using display block which changes the table row background with a transition but then it messes up my whole table row.

The background of the table changes but is has to change the table row only.

 .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> 

Make the background and the pseudo element on th / td instead and use background-attachment:fixed to simulate a continuous background:

 .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) fixed; 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; } 
 <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> 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM