Visualizzazione dei risultati da 1 a 7 su 7

Discussione: griglia coi css

  1. #1

    griglia coi css

    Se in una tabella ricorro al css, l'output e di solo un bordo di contorno a tutta la tabella e non una "griglia" cioè non vengono delimitate tutte le celle.
    Come invece avviene con l'attributo border specificato nella table.

    Esiste qualche istruzione css per modificare il bordo in modo che ricopra tutte le celle?
    Perchè non l'ho trovato, ho trovato solo stili di bordi ma tutti rigorosamente attorno come riquadro e basta.
    Grazie

  2. #2
    Utente di HTML.it L'avatar di nuky
    Registrato dal
    Oct 2001
    Messaggi
    1,053
    Devi applicare i bordi anche ai td.
    codice:
    <style>
      table, td {border: 1px solid red;}
    </style>
    <table>
      <tr><td>aaa</td><td>aaa</td></tr>
      <tr><td>aaa</td><td>aaa</td></tr>
      <tr><td>aaa</td><td>aaa</td></tr>
      <tr><td>aaa</td><td>aaa</td></tr>
    </table>
    - "E' un messaggio. E' di Svarion, della terra di Merdor!"
    - "Busto Arsizio?"
    - "Terrazzo, sgabello, formaggio. Borraccia blu, ca**o di gomma e... CANNUCCIA!"
    - "Ca**o dici? C'è scritto «frocio chi legge»!"

  3. #3
    Originariamente inviato da nuky
    Devi applicare i bordi anche ai td.
    codice:
    <style>
      table, td {border: 1px solid red;}
    </style>
    <table>
      <tr><td>aaa</td><td>aaa</td></tr>
      <tr><td>aaa</td><td>aaa</td></tr>
      <tr><td>aaa</td><td>aaa</td></tr>
      <tr><td>aaa</td><td>aaa</td></tr>
    </table>
    ma così mi divide la tabella in "quadretti", ogni cella ha il suo riquadro che è separato dalla tabella.
    Cioè io vorrei creare proprio una grata dove le celle si differenziano tramite una sola linea e non due.

    cioè per capirci, il risultato che ottengo è questo:
    codice:
     ---------   ---------
    |         | |         |
     ---------   ---------
    invece vorrei ottenere questo (cioè come con <table border="1">):
    codice:
     -----------------------------------
    |           |           |           |
     -----------------------------------

  4. #4
    Utente di HTML.it L'avatar di nuky
    Registrato dal
    Oct 2001
    Messaggi
    1,053
    Puoi fare così allora.
    codice:
    <style>
      table {background-color: red;}
      td {background-color: #FFF;}
    </style>
    <table cellspacing="1">
      <tr><td>aaa</td><td>aaa</td></tr>
      <tr><td>aaa</td><td>aaa</td></tr>
      <tr><td>aaa</td><td>aaa</td></tr>
      <tr><td>aaa</td><td>aaa</td></tr>
    </table>
    Il rosso non è più dato dal bordo, ma è lo sfondo dell'oggetto TABLE. Mettendo cellspacig="1" separi i TD con fondo bianco, in modo che tra di loro si veda lo sfondo della tabella.
    - "E' un messaggio. E' di Svarion, della terra di Merdor!"
    - "Busto Arsizio?"
    - "Terrazzo, sgabello, formaggio. Borraccia blu, ca**o di gomma e... CANNUCCIA!"
    - "Ca**o dici? C'è scritto «frocio chi legge»!"

  5. #5
    Utente di HTML.it L'avatar di nuky
    Registrato dal
    Oct 2001
    Messaggi
    1,053
    Comunque <table border="1" non fa altro che impostare i bordi dell'oggetto table e di tutti gli oggetti td al suo interno, cioè la stessa cosa che ti ho postato prima tramite css.

    Quello che hai chiesto tu (ottenere un bordo di un solo pixel tra una cella e l'altra) non lo potrai mai ottenere con l'attributo border, perché a causa degli oggetti confinanti avrai sempre un bordo di almeno 2px.

    Un altra soluzione, sempre tramite css, sarebbe quella di impostare un solo bordo dei due confinanti per ogni contatto tra due oggetti (td o table).
    - "E' un messaggio. E' di Svarion, della terra di Merdor!"
    - "Busto Arsizio?"
    - "Terrazzo, sgabello, formaggio. Borraccia blu, ca**o di gomma e... CANNUCCIA!"
    - "Ca**o dici? C'è scritto «frocio chi legge»!"

  6. #6
    Utente di HTML.it L'avatar di nuky
    Registrato dal
    Oct 2001
    Messaggi
    1,053
    Una cosa così per intenderci. Fa un po' schifo, ma mi sono divertito a farla.
    codice:
    <style>
      td {border-top: 1px solid red; border-left: 1px solid red;}
      .destra {border-right: 1px solid red;}
      .sotto {border-bottom: 1px solid red;}
    </style>
    <table cellspacing="0">
      <tr><td>aaa</td><td>aaa</td><td>aaa</td><td class="destra">aaa</td></tr>
      <tr><td>aaa</td><td>aaa</td><td>aaa</td><td class="destra">aaa</td></tr>
      <tr><td>aaa</td><td>aaa</td><td>aaa</td><td class="destra">aaa</td></tr>
      <tr><td>aaa</td><td>aaa</td><td>aaa</td><td class="destra">aaa</td></tr>
      <tr><td>aaa</td><td>aaa</td><td>aaa</td><td class="destra">aaa</td></tr>
      <tr><td class="sotto">aaa</td><td class="sotto">aaa</td><td class="sotto">aaa</td><td class="destra sotto">aaa</td></tr>
    </table>
    Edit: Così è un po' meglio.
    codice:
    <style>
      td {border-top: 1px solid red; border-left: 1px solid red;}
      .destra {border-right: 1px solid red;}
      TR.sotto TD {border-bottom: 1px solid red;}
    </style>
    <table cellspacing="0">
      <tr>              <td>aaa</td><td>aaa</td><td>aaa</td><td class="destra">aaa</td></tr>
      <tr>              <td>aaa</td><td>aaa</td><td>aaa</td><td class="destra">aaa</td></tr>
      <tr>              <td>aaa</td><td>aaa</td><td>aaa</td><td class="destra">aaa</td></tr>
      <tr>              <td>aaa</td><td>aaa</td><td>aaa</td><td class="destra">aaa</td></tr>
      <tr>              <td>aaa</td><td>aaa</td><td>aaa</td><td class="destra">aaa</td></tr>
      <tr class="sotto"><td>aaa</td><td>aaa</td><td>aaa</td><td class="destra">aaa</td></tr>
    </table>
    - "E' un messaggio. E' di Svarion, della terra di Merdor!"
    - "Busto Arsizio?"
    - "Terrazzo, sgabello, formaggio. Borraccia blu, ca**o di gomma e... CANNUCCIA!"
    - "Ca**o dici? C'è scritto «frocio chi legge»!"

  7. #7
    Originariamente inviato da nuky
    [cut]
    Il rosso non è più dato dal bordo, ma è lo sfondo dell'oggetto TABLE. Mettendo cellspacig="1" separi i TD con fondo bianco, in modo che tra di loro si veda lo sfondo della tabella.
    perfetto.. risolto!
    grazie

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 © 2024 vBulletin Solutions, Inc. All rights reserved.