2009-12-24 17 views
6

Por alguna razón, cuando aplica una imagen de fondo a un tr en Safari/Chrome, se representa como si la regla se aplicara a cada td.CSS/Webkit: Imágenes de fondo para la fila de tabla

Firefox:

Firefox http://www.whyprime.com/temp/table-firefox.png

Safari:

Safari http://www.whyprime.com/temp/table-safari.png

me encontré con este artículo sobre un arreglo:

http://snook.ca/archives/html_and_css/applying_a_back

Pude hacerlo funcionar en IE con gifs espaciadores pero no puedo descifrarlo para Safari.

http://www.whyprime.com/temp/table-background.html

+0

¿Y su código estaría donde? –

Respuesta

3

para mi mesa siempre sólo tienen 2 filas? Tales como:

<table> 
    <tr> 
    <td></td> 
    <td></td> 
    </tr> 
</table> 

Si es así, una solución simple, pero no demasiado elegante sería dividir la imagen de fondo en dos imágenes, y aplicar una clase CSS a la columna de la izquierda y la derecha, la aplicación de la mitad de la flecha a la lado derecho de la columna de la izquierda, y hacia el lado izquierdo de la columna de la derecha:

<table> 
    <tr> 
    <td class="left"></td> 
    <td class="right"></td> 
    </tr> 
</table> 

Su CSS podría entonces ser similar a:

td.left 
{ 
    background: #ffffff url(../PathToLeftBackground.png) top right; 
} 
td.right 
{ 
    background: #fffff url(../PathToRightBackground.png) top left; 
} 

también puede utilizar una imagen de sprite, donde se use 1 imagen y colóquela de manera diferente para los dos fondos.

Me doy cuenta de que probablemente no sea la solución más ideal, pero al menos solucionaría su problema y pondría en marcha su proyecto. A veces uso soluciones simples como esta para avanzar y luego vuelvo a revisar el problema para hacerlo más eficiente más adelante.

Espero que esto ayude!

+0

Ah, supongo que esa sería la forma en que tradicionalmente harías imágenes de fondo para una mesa. Ha pasado tanto tiempo desde que tuve que diseñar una mesa con fondos cortados en serio y todo eso ni siquiera pensé en eso.Pude mitigar los problemas de visualización en los navegadores Webkit posicionando el fondo con valores x/y, pero en el futuro esta será la ruta que tomaré y solo usaré JavaScript aplicará dinámicamente los estilos de fondo apropiados para mantener el marcado limpio y simple. . Voy a marcar como respondido por el buen consejo y la solución funcional. ¡Gracias hermano! –

8

De forma predeterminada, TR y TD tienen las propiedades de visualización tabla-celda y tabla-fila. Necesitamos que se olviden de ella y se sienten como elementos de bloques simples:

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

Este código resolvió el problema de hacer por mí.

+0

Gracias, solución perfecta para mí, con la adición de la piratería Webkit @media CSS. '@media pantalla y (-webkit-min-device-pixel-ratio: 0) { tr {display: block;} \t td {display: inline-block; width: 195px} }' – Jamie

+0

¡Eres DIOS! !! No realmente, pero tu solución me ayudó. Gracias. – Steve

+0

Gracias a su solución Rocas en CSS, ahorra gran parte de mi tiempo. –

11

es un poco tarde pero, puede utilizar "background-attachment: fixed" para resolver este problema.

<table> 
    <tr class="bg"> 
    <td></td> 
    <td></td> 
    </tr> 
</table> 

y en el CSS

tr.bg { 
    background-image : url(../PathToLeftBackground.png) repeat-y 50px 0px; 
    background-attachment: fixed; 
} 

y funciona!

+1

¿Alguna vez se desplazó con esto? Es un poco gracioso – HerrSerker

+0

Gracias por tu idea. Pasé 1 semana buscando una buena solución gradiente fondo tabla tr. Gracias. – Peter

+0

Esto me salvó la vida fkn. TE QUIERO. – thouliha

Cuestiones relacionadas