Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

233
Visualizações
Different CSS styles for each HTML tab

Developing a website using Django (irrelevant, really), and have been toying with the implementation of tabs versus a navbar, as I want certain pages to update when selected without completely redirecting to a new page, or refreshing it entirely. For this to be useful, however, each tab would require its own format of CSS, as each page that's being displayed is inherently different from every other (lets say there are 4 tabs, each tab would display completely different page, ranging from an image library to just text); this is required as I need the banner to remain fixed at the top of the page, as well as the position of the user on said page to remain the same once a new tab is selected, or at least not have the page reload. My question is, how would this theoretically be done, as I have found very little documentation on the matter, other than people claiming "its possible" when asked.

<div class="wrapper">
  <div class="tabs">
    <div class="tab">
      <input type="radio" name="css-tabs" id="tab-1" checked class="tab-switch">
      <label for="tab-1" class="tab-label">Tab One</label>
      <div class="tab-content">sample text</div>
    </div>

Based on the input above, I would assume you could list multiple entries and modify each one using the id="tab-1" modifier within CSS, something similar to #tab-1, #tab-2, #tab-3, to update each selection individually, however, this does not seem to work when attempted. I have also attempted to incorporate separate CSS files, which would be the optimal result, however, they do not seem to load properly when incorporated, and I have found little documentation on implementing multiple CSS files in the way that is required for differential tabs.

(Alternatively, is there a way to obtain this format using a navbar, whereas instead of a link to a separate page, it displays the change within the body, similar to a tab modifying its container; ultimately, I want the display to be similar to that of a navbar.)

Thanks for your help.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

You can use multiple div to put your content in them. After that, you can hide your div with display: none;.

You can now, with Javascript, change the display of one of your div that contains your content.You can use the document.getElementById('div-1').style.display = "initial" to show one of your tab and you can use the document.getElementById('div-1').style.display = "none" to hide it.

Here is an example that I have found on Codepen.io: Example of the tab switching

function hideOtherTabs(tabList, tab, tabPrefix){
    
    for (index = 0; index < tabList.length; index++) {
        if(tabPrefix+tab!=tabPrefix+tabList[index]){
            $('div#'+tabPrefix+tabList[index]).hide();
        }
    }
}

jQuery(document).ready( function(){
 
    var tabPrefix = 'home_';
    var tabs = ['tab1', 'tab2', 'tab3'];
    
    for (index = 0; index < tabs.length; index++) {
        jQuery('div#'+tabPrefix+tabs[index]).hide();
    }
        
    jQuery('ul.tab_links li').click( function(){
         
        var tabID = $(this).attr('id');
        //alert(tabID);
        //show this tab
        jQuery('div#'+tabPrefix+tabID).show();
        
        //hide others
        hideOtherTabs(tabs,tabID,tabPrefix);
    });
});
.tab_links {}

.tab_links li {
  font-family: 'Source Sans Pro', sans-serif;
  cursor: pointer;
  list-style: none;
  float: left;
  margin-right: 3px;
  padding: 10px 40px;
  background: #B326DA;
  color: #ffffff;
}

.tab_links li:hover {
  background: #D746FF;
}

.tab_box{
  min-height: 200px;
  width:335px;
  margin: 10px 0 5px 40px;
  border:1px dashed #B326DA;
  padding:10px;
  
  font-family: 'Source Sans Pro', sans-serif;
  color: #B326DA;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href='https://fonts.googleapis.com/css?family=Source+Sans+Pro' rel='stylesheet' type='text/css'>

<ul class='tab_links'>
  <li id='tab1'>Tab 1</li>
  <li id='tab2'>Tab 2</li>
  <li id='tab3'>Tab 3</li>
</ul>
<div style='clear:both;'></div>
<div class='tab_box' id='home_tab1'>
  Crazy world tab1
</div>
<div class='tab_box' id='home_tab2'>
  Hello world tab2
</div>
<div class='tab_box' id='home_tab3'>
  Bye world tab3
</div>

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda