Penso che la tua domanda sia molto importante. Poiché le classi di risoluzione dello schermo sono in rapido aumento, l'utilizzo del posizionamento di em per supportare un'ampia gamma di risoluzioni dello schermo è un approccio davvero allettante. Ma non importa quanto duramente si tenti di tenere tutto in em - a volte si ottiene un valore in pixel forse da trascinamento della selezione JQuery o da un'altra libreria, e si vorrebbe convertire questo valore in em prima di inviarlo di nuovo al server per la persistenza. In questo modo la prossima volta che l'utente guarda la pagina, l'elemento si troverà nella posizione corretta, indipendentemente dalla risoluzione dello schermo del dispositivo che sta utilizzando.
I plug-in JQuery non sono molto spaventosi quando è possibile rivedere il codice, specialmente se sono corti e dolci come this plugin to convert pixel values to em come si desidera. In effetti è così breve che incollo l'intera cosa qui. Per informazioni sul copyright, consultare il link.
$.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';
};
Utilizzo Esempio: $(myPixelValue).toEm();
o $(myEmValue).toPx();
.
Ho appena provato questo nella mia applicazione, funziona benissimo. Quindi pensavo di condividere.
questo potrebbe aiutare http://pxtoem.com/ controllare la scheda "learn" – chepe263