2009-08-15 17 views

Respuesta

5

En términos de CSS, una clase es un selector que comienza con un punto, por ejemplo.

.foo { ... } 

Sería utilizado en forma

<div class="foo"> 

Este uso de "clase" es más en el sentido de "un conjunto o categoría de las cosas que tiene una característica y diferenciada de las demás por tipo común o calidad ", en lugar de tomar prestado de la terminología OO.

Una pseudoclase no es "realmente real", ya que el agente de usuario define cuándo y/o cuánto contenido califica (como :hover, :active, etc.).

4

Es pseudo porque no lo hizo; el navegador lo 'creó' y le permite configurarlo para cambiar el aspecto del enlace cuando está en ese estado.

+0

pero ¿por qué es una clase? Si solo puede colocar el cursor sobre un punto o sobre un área de la pantalla a la vez, solo una p puede tomar la regla CSS en cualquier momento. ¿La clase no implica varios elementos que pertenecen a un grupo común, y una regla de estilo de clase significa que todos heredarán esa regla? – Anthony

+0

@Anthony: la pseudoclase se puede suponer como un estado. Y cada elemento que tiene el estado * hover * se puede clasificar por ': hover'. Entonces, cuando un elemento 'a' obtiene el estado * hover *, puede seleccionarse con': hover'. – Gumbo

1

Desde el w3c CSS2 selector spec:

CSS introduce los conceptos de pseudo-elementos y pseudo-clases para permitir el formato basado en la información que se encuentra fuera de la estructura del documento.

  • Los pseudo-elementos crean abstracciones sobre el árbol del documento más allá de las especificadas por el idioma del documento. Por ejemplo, los idiomas de los documentos no ofrecen mecanismos para acceder a la primera letra o primera línea del contenido de un elemento. Los pseudo-elementos CSS permiten a los diseñadores de hojas de estilo referirse a esta información inaccesible. Los pseudoelementos también pueden proporcionar a los diseñadores de hojas de estilo una forma de asignar estilo a contenido que no existe en el documento fuente (por ejemplo, los pseudoelementos: antes y después dan acceso al contenido generado).

  • Las pseudo clases clasifican los elementos en características que no sean su nombre, atributos o contenido; en principio, características que no pueden deducirse del árbol de documentos. Las pseudo-clases pueden ser dinámicas, en el sentido de que un elemento puede adquirir o perder una pseudo-clase mientras el usuario interactúa con el documento. Las excepciones son ': first-child', que se puede deducir del árbol de documentos, y ': lang()', que se puede deducir del árbol de documentos en algunos casos.

Así que, básicamente, una pseudo-clase es algo que se puede adjuntar un estilo, pero nunca imprimir hacia fuera usted mismo en el código HTML. Además, un pseudo-clas puede ser adquirido y perdido dependiendo de la interacción del usuario con la UI.

1

Con CSS2/3 que permite reglas de elementos más sofisticados (cosas como entrada [type = casilla de verificación] y similares, el término pseudo-clase parece cada vez más anticuado.

Sin embargo, pseudo-clases son la solo identificadores de CSS que (más o menos) cambian confiablemente con las interacciones del usuario. Con los selectores de atributos y lo que no, la mayoría de los navegadores tienden a ir con el estado de todos los elementos en la carga de la página y se ignoran los cambios realizados.Pero con pseudo-clases, en realidad cambian el estilo cuando la pseudo-clase se convierte en verdadera (o falsa).

Así que con esa definición específica en mente, son clases porque la regla se aplica a cualquier elemento que comparte el mismo "estado" y por lo tanto se puede considerar una "clase", pero es pseudo porque no es cierto clase definida por atributo y porque la "clase" puede o no ser cierta en cualquier momento dado, se ve la página.

También es interesante observar, creo, que con ciertas pseudo-clases basadas en UI (estoy pensando específicamente en :hover) solo un elemento en un momento dado realmente puede tener esa "clase" por lo que es casi más de un pseudo-id, basado en mi definición anterior.

Cuestiones relacionadas