Creo que su pregunta es muy importante. Dado que las clases de resoluciones de pantalla están aumentando rápidamente, utilizar el posicionamiento em para admitir una amplia gama de resoluciones de pantalla es un enfoque realmente atractivo. Pero no importa cuánto intentes guardar todo en ellos, a veces obtienes un valor de píxel de JQuery arrastrando y soltando o de otra biblioteca, y querrás convertir este valor en em antes de enviarlo al servidor para su persistencia. De esta manera, la próxima vez que el usuario mire la página, el elemento estará en la posición correcta, independientemente de la resolución de pantalla del dispositivo que esté utilizando.
Los complementos de JQuery no son muy aterradores cuando puede revisar el código, especialmente si son cortos y agradables como this plugin to convert pixel values to em como desee. De hecho, es tan corto que pegaré todo aquí. Para ver el aviso de copyright, consulte el enlace.
$.fn.toEm = function(settings){
settings = jQuery.extend({
scope: 'body'
}, settings);
var that = parseInt(this[0],10),
scopeTest = jQuery('<div style="display: none; font-size: 1em; margin: 0; padding:0; height: auto; line-height: 1; border:0;"> </div>').appendTo(settings.scope),
scopeVal = scopeTest.height();
scopeTest.remove();
return (that/scopeVal).toFixed(8) + 'em';
};
$.fn.toPx = function(settings){
settings = jQuery.extend({
scope: 'body'
}, settings);
var that = parseFloat(this[0]),
scopeTest = jQuery('<div style="display: none; font-size: 1em; margin: 0; padding:0; height: auto; line-height: 1; border:0;"> </div>').appendTo(settings.scope),
scopeVal = scopeTest.height();
scopeTest.remove();
return Math.round(that * scopeVal) + 'px';
};
Ejemplo de uso: $(myPixelValue).toEm();
o $(myEmValue).toPx();
.
Acabo de probar esto en mi aplicación, funciona muy bien. Así que pensé que compartir
esto podría ayudarlo http://pxtoem.com/ Compruebe la pestaña "aprender" – chepe263