2011-04-21 8 views
7

estoy Reescritura mi Textarea Line Count plugin (< - enchufe descarado), y tener esta pregunta: ¿¿Alguna vez jQuery devolverá una medida de CSS en algo distinto de px?

Cuando llamo $("#someElement").css("letter-spacing"), ¿alguna vez obtener un valor en em s, u otra cosa que no sea px? Basado en este ejemplo: http://jsfiddle.net/xhhr2/, al menos en Google Chrome, parece que jQuery o el navegador está convirtiendo la medición en px para mí. ¿Siempre puedo esperar este comportamiento?

Respuesta

6

De acuerdo con Crescent Fresh's answer que enlaza con un hack de Dean Edwards, jQuery hace todo lo posible para devolver el valor de píxel real calculado en todos los navegadores y no lo definido originalmente en la hoja de estilos, por lo que parece que sí , puedes confiar en eso.

+1

De hecho, mira lo que encontré: http://struckthrough.krystophv.org/tag/curcss/. Este método quedó obsoleto hace mucho tiempo, pero sí solía devolver '1em' en lugar de convertirlo, por ejemplo. –

+0

@Simple ¡hallazgo interesante! –

+0

Gracias Pekka! Eso será muy útil en la próxima versión ... –

5

Hasta donde yo sé, el navegador tiene que convertir todos los tamaños que le das (ya sea en em, %, etc.) en píxeles. Así es como el DOM lo almacena, y así jQuery le devolverá ese valor.

EDITAR Según esta respuesta here, (referenciado por la respuesta de Pekka) solamente IE apoya la currentStyle, que da el tamaño (incluyendo la unidad) que fue establecido por CSS. Aparentemente, ningún otro navegador lo admite, todos usan computed style que convierte todo en píxeles. Así que estaba a la mitad de la razón. : P

+0

¿Puedes dar alguna prueba de algún tipo? –

+2

tiene sentido. Me enojaría si jQuery (o el navegador para el caso) devolviera cualquier medida en '%' :) –

+0

No puedo encontrarlo ahora pero parece recordar una pregunta que mencionó que la cadena real de el CSS que incluye las unidades originales ('95%' o '1.2em') se devolverá con versiones anteriores de jQuery (no estoy seguro, pero voy a decir <= 1.2) pero ya no. –

Cuestiones relacionadas