2011-10-11 15 views
12

Ho un problema semplice, ma la ricerca in rete non ha prodotto alcun risultato.Doppio bordo tratteggiato durante l'utilizzo di colspan

Ho una tabella

<table> 
    <tr> 
     <td colspan="3"> 
      <img src="something.png" /> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      Hello 
     </td> 
     <td> 
      World 
     </td> 
     <td> 
      ! 
     </td> 
    </tr> 
</table> 

Gli <tr> elementi hanno tutti border-top: dotted 1px black, questo funziona bene a parte il <td> elemento centrale nella seconda <tr>.

Questo elemento ha un doppio bordo e quindi appare come una linea continua, rimuovendo lo colspan risolve il problema.

ho cercato applicando border-collapse: collapse al tavolo e questo non ha funzionato, ho provato ad aggiungere contenuti sotto forma di &nbsp; all'interno della prima <td> invece di un'immagine e questo non ha funzionato neanche.

Qualche idea a qualcuno?

+0

è il tavolo ha anche confine? prova con il bordo della tabella di impostazione come nessuno. – punit

+0

Il '

' non ha bordi e '
non ha bordi. –

+0

In quale browser si trova questo? Non lo trovo in un jsfiddle con Firefox 7.0.1: http://jsfiddle.net/yePHg/ – Pat

risposta

23

Aggiunta border-collapse: separate; al vostro tavolo consente di risolvere il problema, vedere http://jsfiddle.net/quyMy/

Ho aggiunto un banco di prova dinamica a quel violino. Fai clic ovunque, e la visibilità della tabella originale/nuova si alternerà, permettendoti di vedere la differenza molto più facilmente.

Un altro modo per sbarazzarsi del bordo imprevisto è aggiungere un semplice <tr></tr> dopo la riga contenente <td colspan=3>.

+0

Nessuna risposta solida ancora Rob W. Quindi, hai vinto! –

+0

mi ha salvato un paio di cicli. Grazie! – Hcabnettek

3

Se si imposta il bordo sulle celle della tabella anziché sulle righe della tabella, funzionerà.

Posso solo riprodurre l'errore in IE, ma ci sono altri problemi noti con il modo in cui le tabelle in IE rendono i bordi.

vedere questo: http://jsfiddle.net/yePHg/19/

+0

Grazie Vittorio, sono sicuro di aver provato questo però. Ci riproverò. –

0

tenta di aggiungere questo css:

<style> 
table, table * { border:0; padding:0; margin:0 } 
table td { border-top:1px dotted #000 } 
</style> 
1

Provate ad applicare css display: block; sulla tr:

 
    tr 
    { 
     border-top: 1px dotted #000; 
     display: block; 
    }

0

mi ha colpito questo stesso problema !

border-collapse: separate 

ha funzionato benissimo, ma ha anche separato i miei confini (scioccante, vero?). Volevo una singola linea tratteggiata. Quindi ecco cosa ho fatto.

CSS:

td { 
border-right: 1px dotted #bbb; 
border-left: 1px dotted #bbb; 
border-bottom: 1px dotted #bbb; 
border-top: none; 
padding: .5em; 
} 

th { 
border-right: 1px dotted #bbb; 
border-left: 1px dotted #bbb; 
border-top: 1px dotted #bbb; 
border-top: 1px solid #bbb; 
padding: .5em; 
} 

HTML

<table border="1"> 
    <tr> 
     <th colspan="5"> DRESSES &amp; TOPS </th> 
    </tr> 
    <tr> 
     <td> size </td> 
     <td> numerical </td> 
     <td> bust </td> 
     <td> waist </td> 
     <td> hip< </td> 
    </tr> 
</table> 
Problemi correlati