2009-06-17 13 views
6

Si tengo un elemento con el estilo CSS como el códigoComo llegar relleno o valor de margen en valor relativo usando jQuery

td class="bogus" style="padding-left: 1em;" 

cómo puedo usar jQuery para obtener padding-left valor como 1 em vez de píxeles?

$(".bogus").css("padding-left"); 

Esto sólo devuelve los píxeles, pero quiero que vuelva lo que es realmente en el código, en este caso, el valor de 1 em relativa en lugar. Cómo ?

Gracias por cualquier guía.

  • Qu

Respuesta

8

Lo que puede hacer es fijar el tamaño de fuente base (la propiedad font-size en el elemento <body>) a alrededor de 62,8% (algunos dicen que el 62,5%):

<body style="font-size:62.5%;"> 

Esto hace que la fuente base, o 1.0em, sea aproximadamente igual a 10px. No es exacto, y cambia de fuente a fuente, pero en general es lo suficientemente preciso. Una vez hecho esto, puede utilizar EMS y sus equivalentes de píxeles:

1.0em = 10px, 1.1em = 11px, 1.2em = 12 píxeles etc.

lo que puede convertir fácilmente de píxeles a EMS, dividiendo por 10:

var ems = parseInt($(".bogus").css("padding-left"))/10; 
+0

Ha solucionado mi problema. Gracias por tu guía –

+0

Nota: esto no funcionará si el usuario ha cambiado el tamaño de fuente predeterminado en su navegador, o si el tamaño de fuente predeterminado del navegador es algo más que 16px (Safari). –

Cuestiones relacionadas