2012-05-09 17 views
8

Eventuali duplicati:
Can we solve the table row background image problem, in chrome, in multi celled tables?tabella immagine di sfondo fila

sto cercando di avere un'immagine come sfondo per la prima riga. Il problema è che lo sfondo viene applicato a ciascuna cella separatamente, non nel suo insieme. C'è un modo per aggirarlo?

http://jsfiddle.net/bumpy009/c3txj/

risultato dovrebbe essere simile a questa:

enter image description here

EDIT: Il problema appare solo in Safari, Opera e Chrome. Non ho ancora controllato IE.

+0

dai un'occhiata a [questa risposta a un post sull'argomento] (http://stackoverflow.com/a/3052686/547020). ce ne sono molti là fuori (su stackoverflow) ma questo sembra promettente. –

+1

Nel tuo JS Fiddle, con Firefox/Chrome, sembra * così *. Quale browser utilizzate? –

+0

@DavidThomas Interessante ... Io uso Safari. – domino

risposta

4

Se lo si desidera su ogni riga, perché non renderlo invece lo sfondo della tabella e ripeterlo sull'asse y?

table { 
    width: 300px; 
    background-image: url('mypic.jpg'); 
    background-repeat: repeat-y; 
} 

BTW Ho testato il codice con IE9, FF12 - quelli stanno mostrando l'immagine una volta per riga. Ma Chrome 15 & Safari 5 lo sta ripetendo per ogni td.

Modifica

Dal momento che si voleva solo nella prima fila, si dovrebbe usare background-position per assicurarsi che l'immagine rimane nella parte superiore della tabella (che è di solito dove la prima riga è, vero?: P)

table { 
    width: 300px; 
    background-image: url('mypic.png'); 
    background-repeat: no-repeat; 
    background-position: center top; 
} 
+0

Voglio solo lo sfondo per la prima riga. – domino

+0

quindi mantenere la non ripetizione – rlemon

+0

@domino solo la prima riga ?! Aggiorna la mia risposta ... – Ozzy

2

non so circa i vostri larghezza delle celle (sono variabili?), ma gli elementi di tabella rendono in quanto tale. Per ottenere l'effetto desiderato, hanno bisogno di essere visualizzato come qualcosa di diverso:

tr {display: block;} 
td, th {display: inline-block; background: transparent;} 

Si noterà, che ora è necessario impostare le larghezze per gli elementi TD e TH, però.

Vedere Demo.

+0

Grazie, ora ho due soluzioni funzionanti. – domino