Dalla discussione precedente, sembra come se non in linea il generatore esiste, giusto? Non sono riuscito a trovarne uno in grado di analizzare l'intero foglio di stile.
Innanzitutto, se em è applicato a, immagine o input, a parte il carattere all'interno di un input, sarebbero relativi e, in tal caso, cosa e come? Le immagini non possono essere annidate, e ho difficoltà a vederle essere relative alla larghezza di ogni genitore. (La conversione per il CSS PIE, per evitare errori, è ciò che ispira questo).
Oltre a input e immagini, mi chiedevo se ci fossero modi per convertire un intero foglio di stile. Aiutami a vedere se la mia logica funzionerebbe. Penso di avere molti degli elementi già creati, avrei solo bisogno di affrontarli insieme.
Lavorare con il CSS da solo non può fare il trucco, in quanto è impossibile sapere quali elementi saranno annidati. Quindi richiederebbe la scansione dell'output html. Qual è il modo migliore per farlo? L'unico modo in cui potrei pensare è applicare tutti gli stili in linea, che è stato creato a generator per convertire i modelli per e-mail e così via. Una volta che gli stili sono in linea, ciò mostrerebbe come tutto è annidato. Da quello, confronta al foglio di stile.
Confrontare ogni elemento nidificato con "em" con qualsiasi elemento padre con "em" per generare il px di conseguenza, e ho già uno strumento di regex per analizzare il css, rendendo più semplice.
L'unico problema è che una classe può essere annidata sotto elementi diversi, l'em in una singola classe diventa diversa nel suo contesto, quindi impossibile da convertire in px e deve essere applicata la stessa. L'unica soluzione, credo, è ricreare la struttura nidificata, o una parte di, nel foglio css per applicare il px di conseguenza, ogni volta che la dimensione del carattere differisce nel contesto.
Ad esempio:
<code>
// Original Stylesheet
.mainClass{font-size:1em;}
// HTML
<div id="outerNest" style="font-size:.5em;">
<div class="mainClass"> Font here is .5em </div>
</div>
<div class="mainClass> Font here is 1em</div>
// New stylesheet
.mainClass{font-size:16px;}
// newly created styles to work with px conversion
#outerNest .mainClass{font-size:8px;}
</code>
A. Pensi che potrebbe funzionare? B. C'è un modo migliore? C. Ne vale la pena? Avrei potuto usarlo una volta in una luna blu in alcune situazioni casuali, ma dubito che molte persone lo troverebbero di qualsiasi valore. O c'è una situazione in cui sarebbe utile in cui le persone si incontrano qui e là?
Suppongo che dipenda da quanto sia ben gestito il tuo foglio di stile, ma vedo il punto. Questo è probabilmente il motivo per cui non ce n'è uno ... se non ce n'è uno. Tuttavia, io * potrei * usare un simile convertitore. Mi aiuterebbe davvero a convertire i fogli di stile esistenti nel mio metodo di tipografia. –
Ad esempio, in un layout ben strutturato, quel pulsante (dal mio esempio) sarebbe sempre e solo in un contesto come questo:
body > section||aside > form > button
Non avrei mai un pulsante all'interno di un pulsante, ecc. –Non conosco nessun sistema automatico ma non vedo alcuna ragione per cui non si possa scrivere qualcosa che analizzi l'output HTML e il CSS e converta con successo tutte le dimensioni di px in accurate dimensioni di em. Dio ti aiuti se hai qualche contenuto dinamico però :-P Inoltre, dato che tutti i browser moderni ingrandiscono una pagina invece di provare semplicemente ad espandere le dimensioni (e mantenendo le stesse dimensioni dei px), allora avrai già un layout perfettamente funzionante e funzionante - personalmente lascerei da solo –