2011-06-26 15 views
7

Quiero añadir un selector ::before en algunas celdas de la tabla lo que tiene un position:absolute, pero fracasa:CSS :: Antes de celda de tabla

table{ border:1px solid #ccc; padding:10px; } 
 
table td{ border:1px solid #ccc; padding:5px; } 
 

 
.useBefore::before{ 
 
    content:'before'; 
 
    position:absolute; 
 
}
<table> 
 
     <tbody> 
 
     <tr> 
 
      <td>bird</td> 
 
      <td>animal</td> 
 
      <td>nature</td> 
 
     </tr> 
 
     <tr class='useBefore'> 
 
      <td>building</td> 
 
      <td>robot</td> 
 
      <td>city</td> 
 
     </tr> 
 
     </tbody> 
 
    </table>

me di cuenta de que si añado el ::before a todos los tr 's entonces funciona:

table{ 
 
    border:1px solid #ccc; 
 
    padding:10px; 
 
    } 
 
    table td{ 
 
    border:1px solid #ccc; 
 
    padding:5px; 
 
    } 
 
    
 
    tr::before{ 
 
    content:'before'; 
 
    position:absolute; 
 
    }
<table> 
 
    <tbody> 
 
     <tr> 
 
     <td>bird</td> 
 
     <td>animal</td> 
 
     <td>nature</td> 
 
     </tr> 
 
     <tr class='useBefore'> 
 
     <td>building</td> 
 
     <td>robot</td> 
 
     <td>city</td> 
 
     </tr> 
 
    </tbody> 
 
    </table>

Pero esto no es lo que quiero, porque quiero agregarlo solo en algunos de ellos.

+0

¿Por qué tienes dos dos puntos antes, * ahem *, 'before'? –

+0

bueno, parece genial, sry Lo edito: D – Adam

+0

Funciona bien para mí en FF5. ¿Quizás necesites definir "falla" un poco más claramente? –

Respuesta

15

No estoy seguro de por qué falla exactamente, pero podría agregarlo en la primera celda de la tabla.

.useBefore td:first-child:before{ 
    content:'before'; 
    position:absolute; 
    } 
+1

No estoy seguro de por qué está funcionando su código, pero funciona :)) Intenté 'table tr .useBefore' pero falló, ¡muchas gracias! :) tu nombre suena como una mala palabra en húngaro eres húngaro: P? – Adam

+1

@CIRK Sí, otras personas me dijeron antes que mi nombre no es bueno en húngaro :). – kapa

+0

Estaba teniendo el mismo problema, y ​​noté que usar ': before' en' t' hacía algo así como insertar una nueva celda antes que la primera, y empujar todas las otras células hacia un lado. Usar el pseudo-elemento en 'td: first-child' funcionó bien. – Cthulhu

Cuestiones relacionadas