Estoy tratando de cambiar la clase activa cuando hago clic en uno de los items in the menu , pero ¿cómo cambio el color en la pestaña seleccionada a otra pestaña active y luego elimino la anterior?
.wdc-table-menu ul { list-style-type: none; margin: 0; padding: 0; overflow: hidden; background-color: #484A51; border-top-right-radius: 0.938rem; border-top-left-radius: 0.938rem; } .wdc-table-menu li { float: left; } .wdc-table-menu li a { display: block; color: white; text-align: center; padding: 14px 16px; text-decoration: none; border-top-right-radius: 0.938rem; border-top-left-radius: 0.938rem; } .wdc-table-menu li a:hover { background-color: #3A3B41; } .wdc-table-menu .active { background-color: #3A3B41; } .wdc-table-title { text-align: center; } .wdc-table-title p { color: #D3D3D9; font-size: 2rem !important; font-weight: bold; } <div class="wdc-table-menu"> <ul id="menu_wdc"> <li><a class="wdc_btn active" href="#">WDC</a></li> <li><a class="wdc-btn" href="#">History</a></li> <li><a class="wdc-btn" href="#">Components</a></li> </ul> </div>Querrías usar JavaScript para lograr esto así:
const links =document.querySelectorAll(".wdc-btn "); links.forEach(btn => btn.addEventListener("click",(e)=>{ e.preventDefault(); document.querySelector(".wdc-btn.active").classList.remove("active"); btn.classList.add("active") })); .wdc-table-menu ul { list-style-type: none; margin: 0; padding: 0; overflow: hidden; background-color: #484A51; border-top-right-radius: 0.938rem; border-top-left-radius: 0.938rem; } .wdc-table-menu li { float: left; } .wdc-table-menu li a { display: block; color: white; text-align: center; padding: 14px 16px; text-decoration: none; border-top-right-radius: 0.938rem; border-top-left-radius: 0.938rem; } .wdc-table-menu li a:hover { background-color: #3A3B41; } .wdc-table-menu .active { background-color: #3A3B41; } .wdc-table-title { text-align: center; } .wdc-table-title p { color: #D3D3D9; font-size: 2rem !important; font-weight: bold; } <div class="wdc-table-menu"> <ul id="menu_wdc"> <li><a class="wdc-btn active" href="#">WDC</a></li> <li><a class="wdc-btn" href="#">History</a></li> <li><a class="wdc-btn" href="#">Components</a></li> </ul> </div>Puedes usar pseudo-clase :focus . También un evento onclick para eliminar .active :
function myfunction(){ document.getElementById("active").classList.remove("active"); } .wdc-table-menu ul { list-style-type: none; margin: 0; padding: 0; overflow: hidden; background-color: #484A51; border-top-right-radius: 0.938rem; border-top-left-radius: 0.938rem; } .wdc-table-menu li { float: left; } .wdc-table-menu li a { display: block; color: white; text-align: center; padding: 14px 16px; text-decoration: none; border-top-right-radius: 0.938rem; border-top-left-radius: 0.938rem; } .wdc-table-menu li a:hover { background-color: #3A3B41; } .wdc-table-menu li .active{ background-color: #ff0000; } .wdc-table-menu li a:focus{ /*here*/ background-color: #ff0000; } .wdc-table-title { text-align: center; } .wdc-table-title p { color: #D3D3D9; font-size: 2rem !important; font-weight: bold; } <div class="wdc-table-menu"> <ul id="menu_wdc" onclick="myfunction()"> <li><a id="active" class="wdc_btn active" href="#">WDC</a></li> <li><a class="wdc-btn" href="#">History</a></li> <li><a class="wdc-btn" href="#">Components</a></li> </ul> </div>