2010-12-04 28 views
23

CSS permite un elemento HTML a tener múltiples clases:CSS: ¿Existe un límite en la cantidad de clases que puede tener un elemento HTML?

<div class="cat persian happy big"> Nibbles </div> 

Pero es que hay un límite en el número de se permite clases por artículo?

+7

En general, con cualquier pregunta límite, * si tiene que preguntar, está haciendo algo mal *. A menos que sea solo una curiosidad inactiva :-) –

+1

Estoy almacenando el estado de un elemento en el atributo 'clase', por lo que puedo tratar la visualización puramente a través de CSS: hay hasta 32 indicadores de estado posibles. –

+3

A menos que tus banderas sean excepcionalmente largas, deberías estar bien. Recuerde que sus clases no pueden ser numéricas; deben comenzar con una letra. '32' no es válido mientras' f32' es válido. – meagar

Respuesta

17

Solo está limitado por la longitud máxima del valor de un atributo (X) HTML, algo que está bien cubierto por this answer.

Los navegadores son a menudo muy indulgentes con las violaciones de las normas, por lo que los navegadores individuales pueden permitir atributos de clase mucho más largos. Además, es probable que pueda agregar un número prácticamente infinito de clases a un elemento DOM a través de JavaScript, limitado por la cantidad de memoria disponible para el navegador.

Para todos los efectos, no hay límite. Estoy asumiendo que estás preguntando por curiosidad; huelga decir que si estás seriamente preocupado por llegar a este límite, has hecho algo muy malo.

-1

No,

No habrá ningún límite.

+0

¿Puedes incluir una fuente para tu afirmación? – meagar

+0

@meager, nunca me encuentro con ese límite ... // – kobe

+3

@gov El hecho de que nunca hayas llegado al límite no significa que no esté allí. ¿Cuán rigurosamente has probado esta afirmación? ¿Alguna vez realmente * has intentado * llegar al límite?No puedo votar por esa respuesta porque es peor que inútil para una referencia como SO. – meagar

5

No. No lo creo, que me he encontrado con cualquier límite/

EDITAR: Lo siento por la observación casual.
Según las especificaciones, no hay ningún límite, pero alguien ha intentado alcanzar este límite y parece que es el límite para Opera, Safari admite más de 4000 clases y Firefox tiene al menos 2000 clases.
Fuente: http://kilianvalkhof.com/2008/css-xhtml/maximum-number-of-supported-classes-per-element/

+4

"No lo creo" es un comentario más apropiado que una respuesta. Su respuesta es efectivamente "No sé". – meagar

+4

+1 excelente adición – meagar

+2

Tengo curiosidad. No estoy totalmente de acuerdo con sus métodos de prueba; Está agregando clases en números exponenciales por alguna extraña razón, lo que destruye la precisión de su prueba: cuanto más tiempo se ejecute, más inexactos serán los resultados. He escrito una prueba diferente que muestra que FF aceptará más de 10,000 clases. – meagar

0

No hay límite técnico (de restricción de la cantidad de memoria que el navegador puede estar consumiendo), pero se debe en gran medida considerar tener un montón de clases en cualquier elemento como el navegador tendrá que analizar todas las clases, aplica esos estilos y renderiza la página.

Además, si necesita buscar DOM en los elementos de una clase en particular y los elementos contienen muchas clases, es probable que vea un problema de rendimiento si el intérprete de JavaScript tiene que analizar muchas clases.

Cuestiones relacionadas