Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente bannato
    Registrato dal
    Aug 2007
    Messaggi
    92

    Tabelle, righe a colori alternati

    Salve a tutti, primo post sul forum(anche se come sito vi seguo da un bel pò).
    Vorrei sapere se c'è un modo automatico, preferibilmente via CSS, per alternare i colori delle righe delle tabelle, ad esempio il primo <tr> ha lo sfondo verde scuro, mentre il secondo lo ha chiaro, il terzo scuro eccetera eccetera.
    Grazie.

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    con i css 2 non è possibile:
    tra diversi anni quando il supporto dei css3 sarà completo sarà possibile individuare i nodi pari e dispari tramite appositi selettori

    Per ora sei costretto ad assegnare una classe comune a tutte le righe pari (o dispari)
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    Utente di HTML.it L'avatar di oskaron
    Registrato dal
    Sep 2006
    Messaggi
    344
    oggi ho scoperto un inghippo, cioe usando javascript è possibile, comunque ti consiglio invece di assegnare dei nomi di classe con una tecnologia lato server. La tecnica che hai citato generalmente viene chiamata odd or even se ne avrai bisogno.

  4. #4
    Utente bannato
    Registrato dal
    Aug 2007
    Messaggi
    92
    Ehm...non ho capito. :|

  5. #5
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    cosa non ti è chiaro?

    Devi alternare due classi a livello di riga <tr> oppure usarne uno solo che identifica le righe pari o le righe dispari


    codice:
    <table>
     <tr class="dispari">
        <td>...</td>
        <td>...</td>
        ....
     </tr>
     <tr>
        <td>...</td>
        <td>...</td>
        ....
     </tr>
     
     ...
    
     <tr class="dispari">
        <td>...</td>
        <td>...</td>
        ....
     </tr>
     <tr>
        <td>...</td>
        <td>...</td>
        ....
     </tr>
    </table>
    
    
    
    tr, tr td {
       background-color: #9c9;
    }
    
    tr.dispari, tr.dispari td {
       background-color: #cca;
    }
    Ciao
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  6. #6
    Utente bannato
    Registrato dal
    Aug 2007
    Messaggi
    92
    Il problema è che devo generare queste righe via PHP, dovendo prendere i dati da un database, quindi non posso neanche mettere le classi manualmente.

    PS: Visto che ci sono chiedo direttamente qui: come faccio ad applicare una regola a tutti i tag che sono figli di un altro tag che ha una determinata classe?
    Se non è chiaro faccio un esempio, se io ho:
    codice:
    <tr class="Abc">
    <td>Bla</td>
    <td>Ble</td>
    </tr>
    Come posso fare per applicare una certa regola CSS a tutti i tag td che stanno dentro un tag tr con classe Abc?

  7. #7

    re

    .abc tr td {
    proprietà:
    }

    -------------
    <table class="abc">

  8. #8
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    Originariamente inviato da Shadd
    Il problema è che devo generare queste righe via PHP, dovendo prendere i dati da un database, quindi non posso neanche mettere le classi manualmente.
    immagino che tu scriva le varie righe con un qualche ciclo (ad esempio con un for), allora

    codice:
    for ($i=0; $i<=$totale_righe; $i++) {
    
       $class = (($i % 2) == 0)? 'pari' : 'dispari';
       echo '<tr class="'. $class .'">... "        
    }
    la variabile $class diventa 'pari' oppure 'dispari' se la variabile di incremento è un numero pari o dispari.

    Originariamente inviato da Shadd
    PS: Visto che ci sono chiedo direttamente qui: come faccio ad applicare una regola a tutti i tag che sono figli di un altro tag che ha una determinata classe?
    Se non è chiaro faccio un esempio, se io ho:
    codice:
    <tr class="Abc">
    <td>Bla</td>
    <td>Ble</td>
    </tr>
    Come posso fare per applicare una certa regola CSS a tutti i tag td che stanno dentro un tag tr con classe Abc?
    Questo esempio te l'ho fatto proprio nel mio post precedente (basta leggere le risposte che ti vengono date)

    Se la discussione continua sul codice lato server sposterò su PHP

    Ciao
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  9. #9
    Utente bannato
    Registrato dal
    Aug 2007
    Messaggi
    92

    Re: re

    Originariamente inviato da fontlover
    .abc tr td {
    proprietà:
    }

    -------------
    <table class="abc">
    Non va..

    @fcaldera: si ma uso un ciclo while. Non me ne intendo molto di PHP, come posso sistemare?
    Ecco il codice che uso adesso:
    Codice PHP:
    while($riga mysql_fetch_array($objMYSQL_ASSOC))
    {
        if(
    $riga['immagine'] == NULL)
        {
            
    $img "N/D";
        }
        else
        {
            
    $img $riga['immagine'];
        }
        
    htmlentities($riga['campo1']);
        
    htmlentities($riga['campo2']);
        
    htmlentities($riga['campo3']);
        
    htmlentities($riga['campo4']);
        echo 
    "\t\t\t\t\t<tr>\n";
        echo 
    "<td>".$riga['ID'].
        
    "</td>\n<td>".$riga['campo1'].
        
    "</td>\n<td>".$riga['campo2'].
        
    "</td>\n<td>".$riga['campo3'].
        
    "</td>\n<td>".$riga['campo4'].
        
    "</td>\n<td>".$img."</td>\n";
        echo 
    "\t\t\t\t\t</tr>";


  10. #10
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    codice:
    $cont = 0;
    
    while($riga = mysql_fetch_array($obj, MYSQL_ASSOC))
    {
       $classe = ((++$cont % 2) == 0)? 'pari' : 'dispari';
    
        if($riga['immagine'] == NULL)
        {
            $img = "N/D";
        }
        else
        {
            $img = $riga['immagine'];
        }
        htmlentities($riga['campo1']);
        htmlentities($riga['campo2']);
        htmlentities($riga['campo3']);
        htmlentities($riga['campo4']);
        echo "\t\t\t\t\t" . '<tr class = "'. $classe .'">'. "\n";
        echo "<td>".$riga['ID'].
        "</td>\n<td>".$riga['campo1'].
        "</td>\n<td>".$riga['campo2'].
        "</td>\n<td>".$riga['campo3'].
        "</td>\n<td>".$riga['campo4'].
        "</td>\n<td>".$img."</td>\n";
        echo "\t\t\t\t\t</tr>";
    }


    sposto su php
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.