ToolDeck

Convertitore Unità CSS

Converti unità CSS tra px, rem, em, vw, vh e %

px16
rem1
em1
vw1.111111
vh1.777778
%100
pt12
cm0.4233331
mm4.233331
in0.1666667

Cos'è la Conversione di Unità CSS?

Un convertitore di unità CSS è uno strumento che traduce i valori di lunghezza tra i diversi sistemi di misurazione CSS. Il CSS definisce oltre una dozzina di unità di lunghezza, suddivise in due gruppi: unità assolute come px, pt, cm e in che corrispondono a misure fisiche fisse, e unità relative come rem, em, vw, vh e % che dipendono dal contesto, come la dimensione del font o le dimensioni del viewport.

I browser risolvono tutte le lunghezze CSS in pixel durante il rendering. Quando scrivi 1.5rem, il browser moltiplica 1.5 per la dimensione del font radice (tipicamente 16px) per ottenere 24px. Quando scrivi 50vw, prende la metà della larghezza corrente del viewport. Comprendere queste relazioni è necessario per costruire layout che scalino su diversi dispositivi e rispettino le preferenze dell'utente, come le dimensioni del font personalizzate impostate nel browser.

La specifica CSS Values and Units Module Level 4 (W3C) definisce i rapporti di conversione esatti tra tutte le unità assolute: 1in = 96px = 72pt = 2.54cm = 25.4mm. Le unità relative non hanno un rapporto fisso perché dipendono dal contesto di esecuzione. Un convertitore di unità CSS gratuito ti consente di calcolare istantaneamente queste relazioni in base alla tua specifica dimensione del font radice e alle dimensioni del viewport, senza scrivere alcun codice.

Perché Usare un Convertitore di Unità CSS?

Convertire manualmente tra unità CSS significa ricordare rapporti, aprire una calcolatrice e ricontrollare i calcoli. Questo strumento esegue la conversione nel tuo browser senza alcuna difficoltà.

Conversione Immediata
Inserisci un valore, scegli l'unità sorgente e visualizza i risultati in tutte e 10 le unità CSS contemporaneamente. Nessun bisogno di eseguire calcoli separati per px-to-rem, px-to-vw o px-to-pt.
🔒
Dati Sempre Privati
Tutte le conversioni vengono eseguite localmente nel tuo browser. Nessun valore viene inviato a un server, registrato o memorizzato. Chiudi la scheda e i dati sono eliminati.
🎯
Adattato al Tuo Contesto Esatto
Imposta la tua dimensione del font radice, la larghezza del viewport, l'altezza del viewport e la dimensione del font del genitore. Il convertitore utilizza questi valori per produrre risultati accurati per le unità rem, em, vw, vh e %.
📏
Copre Tutte le Unità di Lunghezza CSS
Supporta px, rem, em, vw, vh, %, pt, cm, mm e in. Che tu stia lavorando con layout per schermo, fogli di stile per la stampa o tipografia responsive, ogni unità è supportata.

Casi d'Uso del Convertitore di Unità CSS

Sviluppo Frontend
Converti i valori in pixel di un file di design in rem per una libreria di componenti. Quando un mockup Figma specifica 24px di spaziatura, converti in 1.5rem in modo che il layout scala con le preferenze di dimensione del font dell'utente.
Backend / Sviluppo Full-Stack
Genera template PDF o email dove le dimensioni sono specificate in pt o cm. Converti i valori CSS in pixel in dimensioni in punti pronte per la stampa per il rendering lato server con strumenti come Puppeteer o wkhtmltopdf.
DevOps / Pipeline CI
Verifica che i token di spaziatura di un design system utilizzino unità coerenti tra i passaggi di build. Controlla rapidamente che una base di 16px produca i valori rem attesi nel CSS generato.
QA / Test Visivo
Verifica gli stili calcolati durante i test cross-browser. Quando Chrome DevTools mostra un valore calcolato di 14.4px, convertilo in rem per confermare che corrisponda al valore atteso di 0.9rem dal foglio di stile.
Visualizzazione dei Dati
Dimensiona elementi SVG o canvas in base alle dimensioni del viewport. Converti le larghezze dei grafici in pixel fissi in unità vw in modo che le visualizzazioni riempiano una percentuale costante dello schermo su monitor diversi.
Imparare il CSS
Comprendi la relazione tra rem, em e px sperimentando con diverse dimensioni base. Cambia la dimensione del font radice da 16px a 18px e osserva come ogni valore rem si modifica.

Riferimento alle Unità di Lunghezza CSS

Il CSS definisce 10 unità di lunghezza comunemente utilizzate. Le unità assolute hanno una conversione fissa in pixel. Le unità relative dipendono dal contesto: la dimensione del font radice per rem, la dimensione del font del genitore per em, e il viewport del browser per vw e vh.

UnitàNomeDimensione predefinitaRelativa a
pxPixel1pxFixed; 1px = 1/96 of 1in on screens
remRoot em16px (default)Relative to <html> font-size
emEmInheritedRelative to parent element font-size
vwViewport width1% of viewportRelative to browser window width
vhViewport height1% of viewportRelative to browser window height
%PercentageVariesRelative to parent property value
ptPoint1.333pxPrint unit; 1pt = 1/72 of 1in
cmCentimeter37.795pxPhysical unit; 1cm = 96px / 2.54
mmMillimeter3.7795pxPhysical unit; 1mm = 1cm / 10
inInch96pxPhysical unit; 1in = 96px (CSS spec)

Unità CSS Assolute vs Relative

La scelta tra unità assolute e relative influisce su come il tuo layout risponde a schermi diversi e alle impostazioni dell'utente. Ogni gruppo presenta vantaggi e svantaggi distinti.

Unità Assolute (px, pt, cm, mm, in)
Le unità assolute producono la stessa dimensione fisica indipendentemente dal contesto. Usa px per bordi, ombre ed elementi che non devono scalare. Usa pt per i fogli di stile per la stampa. La specifica CSS definisce 1in = 96px, anche se la dimensione fisica effettiva varia in base al DPI del display.
Unità Relative (rem, em, vw, vh, %)
Le unità relative scalano in base al loro contesto di riferimento. Usa rem per le dimensioni del font e la spaziatura, per rispettare le preferenze dell'utente. Usa em per la scalatura interna ai componenti (padding relativo alla dimensione del font dell'elemento stesso). Usa vw/vh per layout a schermo intero come le sezioni hero.

Tabella di Conversione Comune px → rem

Questa tabella assume una dimensione del font radice di 16px (il valore predefinito del browser). Se il tuo progetto usa una base diversa, dividi il valore in pixel per la tua base per ottenere l'equivalente in rem.

pxremptUtilizzo tipico
100.6257.5Small caption text
120.759Body text (compact)
140.87510.5Default body text
16112Root font-size (browser default)
181.12513.5Large body text
201.2515H4 heading
241.518H3 heading
32224H2 heading
48336H1 heading
64448Display / hero text

Esempi di Codice

Questi esempi mostrano come convertire unità CSS a livello di codice in JavaScript, Python, proprietà personalizzate CSS e Sass.

JavaScript
// px to rem (given root font-size of 16px)
const pxToRem = (px, base = 16) => px / base
pxToRem(24)  // → 1.5

// rem to px
const remToPx = (rem, base = 16) => rem * base
remToPx(1.5) // → 24

// px to vw (given viewport width of 1440px)
const pxToVw = (px, viewport = 1440) => (px / viewport) * 100
pxToVw(360)  // → 25

// Dynamic calculation using getComputedStyle
const rootFontSize = parseFloat(
  getComputedStyle(document.documentElement).fontSize
) // → 16 on most browsers
Python
# CSS unit converter functions

def px_to_rem(px: float, base: float = 16) -> float:
    return px / base

def rem_to_px(rem: float, base: float = 16) -> float:
    return rem * base

def px_to_vw(px: float, viewport: float = 1440) -> float:
    return (px / viewport) * 100

def px_to_pt(px: float) -> float:
    return px * 72 / 96

print(px_to_rem(24))     # → 1.5
print(rem_to_px(2.5))    # → 40.0
print(px_to_vw(720))     # → 50.0
print(px_to_pt(16))      # → 12.0
CSS (calc & custom properties)
/* Define a base scale using rem */
:root {
  --base: 16px;       /* root font-size */
  --space-1: 0.25rem; /* 4px */
  --space-2: 0.5rem;  /* 8px */
  --space-4: 1rem;    /* 16px */
  --space-8: 2rem;    /* 32px */
}

/* Fluid typography: scales between 1rem (16px) and 2.5rem (40px) */
h1 {
  font-size: clamp(1rem, 2.5vw + 0.5rem, 2.5rem);
}

/* Viewport-relative hero height */
.hero {
  height: calc(100vh - 4rem); /* full viewport minus 64px header */
}

/* Percentage-based grid */
.sidebar { width: 25%; }     /* 360px on 1440px screen */
.content { width: 75%; }     /* 1080px on 1440px screen */
SCSS (mixin)
// Reusable px-to-rem function in Sass
@use "sass:math";

$base-font-size: 16px !default;

@function rem($px) {
  @return math.div($px, $base-font-size) * 1rem;
}

// Usage
.card {
  padding: rem(24px);       // → 1.5rem
  margin-bottom: rem(32px); // → 2rem
  border-radius: rem(8px);  // → 0.5rem
  font-size: rem(14px);     // → 0.875rem
}

Domande Frequenti

Qual è la dimensione del font radice predefinita nei browser?
Tutti i principali browser (Chrome, Firefox, Safari, Edge) hanno come valore predefinito una dimensione del font radice di 16px. Questo significa che 1rem = 16px a meno che l'utente o un foglio di stile non sovrascriva la dimensione del font dell'elemento html. Alcuni utenti aumentano questo valore nelle impostazioni del browser per l'accessibilità, motivo per cui rem è la scelta migliore rispetto a px per il testo.
Come si converte px in rem?
Dividi il valore in pixel per la dimensione del font radice. Con la base predefinita di 16px: 24px / 16 = 1.5rem. Se il tuo progetto imposta html { font-size: 10px } (un reset comune), allora 24px / 10 = 2.4rem. La formula è sempre: rem = px / font-size-radice.
Qual è la differenza tra rem e em?
rem è relativo alla dimensione del font dell'elemento radice (il tag html), mentre em è relativo alla dimensione del font del genitore dell'elemento corrente. Ciò significa che rem produce una dimensione coerente in tutta la pagina, mentre em si compone quando è annidato. Un 2em all'interno di un genitore 2em diventa 4 volte la dimensione radice. Usa rem per la spaziatura globale e le dimensioni del font; usa em quando vuoi che la dimensione scala relativamente al testo del componente stesso.
Quando dovrei usare le unità vw o vh?
Usa vw per elementi che devono scalare con la larghezza della finestra del browser, come sezioni hero a larghezza piena o tipografia fluida (clamp con vw). Usa vh per sezioni a schermo intero o layout con altezza pari al viewport. Presta attenzione a vh sui browser mobile dove la barra degli indirizzi cambia l'altezza del viewport; la nuova unità dvh (dynamic viewport height) risolve questo problema.
Posso combinare unità CSS diverse nella stessa proprietà?
Sì. La funzione CSS calc() ti permette di combinare qualsiasi unità in un'unica espressione. Ad esempio, width: calc(100vw - 2rem) sottrae 32px (con base predefinita) dalla larghezza totale del viewport. Puoi anche combinare unità in clamp(): font-size: clamp(1rem, 2vw + 0.5rem, 2.5rem) crea una tipografia fluida che scala tra 16px e 40px.
Quanti pixel è 1pt in CSS?
In CSS, 1pt = 1/72 di pollice e 1 pollice = 96px, quindi 1pt = 96/72 = 1.333px. Questo rapporto è fisso nella specifica CSS indipendentemente dal DPI dello schermo. I punti sono utilizzati principalmente nei fogli di stile per la stampa e nella generazione di PDF. Per il design su schermo, px o rem sono scelte migliori.
Il reset del font-size al 62.5% è ancora una buona pratica?
Impostare html { font-size: 62.5% } fa sì che 1rem = 10px, semplificando il calcolo mentale (24px = 2.4rem). Tuttavia, richiede di impostare esplicitamente il font-size sull'elemento body e può causare problemi con componenti di terze parti che assumono la base predefinita di 16px. La preferenza moderna è di mantenere il valore predefinito di 16px e usare una funzione Sass o un plugin PostCSS per gestire la conversione.