🛠️

Whiz Tools

Build • Create • Innovate

Converter PX în REM și EM: Calculator de unități CSS

Convertiți între pixeli (PX), root em (REM) și em (EM) cu acest calculator simplu. Esențial pentru designul și dezvoltarea web responsive.

Converter de unități PX, REM și EM

Convertiți între pixeli (PX), root em (REM) și em (EM). Introduceți o valoare în orice câmp pentru a vedea valorile echivalente în celelalte unități.

px
px
Enter a value in px units
px
Enter a value in rem units
rem
Enter a value in em units
em
Vizualizarea nu este disponibilă pentru valori negative sau zero

Formule de Conversie

  • PX în REM: valoarea în px ÷ dimensiunea fontului de bază
  • PX în EM: valoarea în px ÷ dimensiunea fontului elementului părinte
  • REM în PX: valoarea în rem × dimensiunea fontului de bază
  • EM în PX: valoarea în em × dimensiunea fontului elementului părinte
📚

Documentație

Converter de unități PX, REM și EM: Unități CSS esențiale explicate

Introducere în conversia unităților CSS

Înțelegerea și conversia între unitățile CSS este esențială pentru designul și dezvoltarea web responsivă. Unitățile PX (pixel), REM (root em) și EM sunt blocuri fundamentale care determină cum sunt dimensionate și poziționate elementele pe diferite dispozitive și dimensiuni de ecran. Acest instrument cuprinzător de conversie a unităților vă permite să traduceți cu ușurință valorile între aceste trei unități CSS critice, ajutându-vă să creați layout-uri web mai flexibile și mai ușor de întreținut.

Pixeli (PX) sunt unități de dimensiune fixe care oferă un control precis, dar lipsesc de scalabilitate, în timp ce unitățile REM se scalază în funcție de dimensiunea fontului elementului rădăcină, iar unitățile EM se scalază în funcție de dimensiunea fontului elementului părinte. Conversia între aceste unități poate fi provocatoare, mai ales atunci când lucrați cu designuri complexe sau când susțineți caracteristici de accesibilitate, cum ar fi redimensionarea textului. Converterul nostru PX, REM și EM simplifică acest proces, permițându-vă să vă concentrați pe crearea de designuri frumoase și responsivă.

Înțelegerea unităților CSS: PX, REM și EM

Ce sunt Pixeli (PX)?

Pixeli (PX) sunt cea mai de bază și utilizată unitate CSS. Un pixel este un singur punct într-o rețea de imagine digitală și reprezintă cel mai mic element controlabil de pe un ecran. În CSS, pixeli oferă o unitate de măsură de dimensiune fixă care rămâne constantă, indiferent de alți factori de stilizare.

1.element {
2  width: 200px;
3  font-size: 16px;
4  margin: 10px;
5}
6

Caracteristici cheie ale pixelilor:

  • Unități de dimensiune fixe care nu se scalază automat
  • Oferă control precis asupra dimensiunilor elementelor
  • Ușor de înțeles și vizualizat
  • Mai puțin ideal pentru designul responsiv și accesibilitate

Ce sunt unitățile REM?

Unitățile REM (root em) sunt unități relative care se scalază în funcție de dimensiunea fontului elementului rădăcină (de obicei, elementul <html>). În mod implicit, majoritatea browserelor setează dimensiunea fontului rădăcină la 16px, ceea ce face ca 1rem să fie egal cu 16px, cu excepția cazului în care este schimbat explicit.

1html {
2  font-size: 16px; /* Implicit în majoritatea browserelor */
3}
4
5.element {
6  width: 12.5rem; /* Echivalent cu 200px cu dimensiunea fontului rădăcină implicită */
7  font-size: 1rem; /* Echivalent cu 16px */
8  margin: 0.625rem; /* Echivalent cu 10px */
9}
10

Caracteristici cheie ale unităților REM:

  • Se scalază în funcție de dimensiunea fontului elementului rădăcină
  • Mențin proporții consistente în întreaga documentație
  • Susțin o mai bună accesibilitate prin ajustări globale ale dimensiunii fontului
  • Ideal pentru layout-uri responsivă și tipografie

Ce sunt unitățile EM?

Unitățile EM sunt unități relative care se scalază în funcție de dimensiunea fontului elementului părinte. Dacă nu este specificată nicio dimensiune a fontului pentru părinte, EM-urile vor face referire la dimensiunea fontului moștenită.

1.parent {
2  font-size: 20px;
3}
4
5.child {
6  font-size: 0.8em; /* Echivalent cu 16px (20px × 0.8) */
7  margin: 0.5em; /* Echivalent cu 8px (16px × 0.5) */
8}
9

Caracteristici cheie ale unităților EM:

  • Se scalază în funcție de dimensiunea fontului elementului părinte
  • Creează un efect de cascada atunci când sunt imbricate
  • Utile pentru crearea de designuri proporționale în cadrul componentelor
  • Pot deveni complexe de gestionat cu elemente profund imbricate

Formule și calcule de conversie

Înțelegerea relațiilor matematice dintre unitățile PX, REM și EM este crucială pentru conversii precise. Iată formulele utilizate în converterul nostru:

Conversia PX în REM

Pentru a converti pixeli în unități REM, împărțiți valoarea pixelilor la dimensiunea fontului rădăcină:

REM=PXdimensiuneaFontuluiRa˘da˘cina˘REM = \frac{PX}{dimensiuneaFontuluiRădăcină}

De exemplu, cu dimensiunea fontului rădăcină implicită de 16px:

  • 16px = 1rem
  • 24px = 1.5rem
  • 8px = 0.5rem

Conversia PX în EM

Pentru a converti pixeli în unități EM, împărțiți valoarea pixelilor la dimensiunea fontului elementului părinte:

EM=PXdimensiuneaFontuluiPa˘rinteEM = \frac{PX}{dimensiuneaFontuluiPărinte}

De exemplu, cu o dimensiune a fontului părinte de 16px:

  • 16px = 1em
  • 24px = 1.5em
  • 8px = 0.5em

Conversia REM în PX

Pentru a converti unitățile REM în pixeli, înmulțiți valoarea REM cu dimensiunea fontului rădăcină:

PX=REM×dimensiuneaFontuluiRa˘da˘cina˘PX = REM \times dimensiuneaFontuluiRădăcină

De exemplu, cu dimensiunea fontului rădăcină implicită de 16px:

  • 1rem = 16px
  • 1.5rem = 24px
  • 0.5rem = 8px

Conversia EM în PX

Pentru a converti unitățile EM în pixeli, înmulțiți valoarea EM cu dimensiunea fontului elementului părinte:

PX=EM×dimensiuneaFontuluiPa˘rintePX = EM \times dimensiuneaFontuluiPărinte

De exemplu, cu o dimensiune a fontului părinte de 16px:

  • 1em = 16px
  • 1.5em = 24px
  • 0.5em = 8px

Conversia REM în EM

Pentru a converti unitățile REM în unități EM, trebuie să luați în considerare atât dimensiunea fontului rădăcină, cât și dimensiunea fontului elementului părinte:

EM=REM×dimensiuneaFontuluiRa˘da˘cina˘dimensiuneaFontuluiPa˘rinteEM = REM \times \frac{dimensiuneaFontuluiRădăcină}{dimensiuneaFontuluiPărinte}

Dacă dimensiunile fonturilor rădăcină și părinte sunt aceleași (de exemplu, 16px), atunci 1rem = 1em.

Conversia EM în REM

Pentru a converti unitățile EM în unități REM, utilizați următoarea formulă:

REM=EM×dimensiuneaFontuluiPa˘rintedimensiuneaFontuluiRa˘da˘cina˘REM = EM \times \frac{dimensiuneaFontuluiPărinte}{dimensiuneaFontuluiRădăcină}

Din nou, dacă ambele dimensiuni ale fontului sunt egale, atunci 1em = 1rem.

Cum să folosiți converterul de unități PX, REM și EM

Instrumentul nostru de conversie a unităților facilitează traducerea valorilor între unitățile PX, REM și EM. Iată un ghid pas cu pas pentru utilizarea eficientă a converterului:

Utilizare de bază

  1. Introduceți o valoare în orice câmp de intrare (PX, REM sau EM)
  2. Converterul va calculata automat și va afișa valorile echivalente în celelalte două unități
  3. Ajustați dimensiunea fontului rădăcină (implicit: 16px) pentru a vedea cum afectează conversiile REM
  4. Ajustați dimensiunea fontului părinte (implicit: 16px) pentru a vedea cum afectează conversiile EM
  5. Utilizați butonul copy de lângă fiecare câmp pentru a copia valoarea în clipboard

Funcții avansate

  • Comparare vizuală: Instrumentul oferă o reprezentare vizuală a dimensiunilor relative ale fiecărei unități
  • Controlul preciziei: Toate calculele mențin 4 zecimale pentru acuratețe
  • Valori negative: Converterul suportă valori negative, care sunt valide în CSS pentru proprietăți precum margini
  • Actualizări în timp real: Orice modificare a valorilor de intrare sau a setărilor dimensiunii fontului actualizează instantaneu toate calculele

Sfaturi pentru conversii precise

  • Pentru cele mai precise conversii REM, setați dimensiunea fontului rădăcină pentru a se potrivi cu valoarea fontului <html> a proiectului dumneavoastră
  • Pentru conversii EM precise, setați dimensiunea fontului părinte pentru a se potrivi cu dimensiunea fontului a elementului părinte cu care lucrați
  • Amintiți-vă că dimensiunile implicite ale fontului browserului pot varia, deși 16px este cea mai comună valoare implicită

Cazuri practice de utilizare pentru conversia unităților CSS

Înțelegerea momentului în care să folosiți fiecare unitate CSS și cum să le convertiți între ele este crucială pentru dezvoltarea web eficientă. Iată câteva aplicații și scenarii practice în care converterul nostru se dovedește a fi neprețuit:

Design web responsiv

Conversia între unități este esențială pentru crearea de designuri cu adevărat responsivă:

  • Abordare mobil-first: Începeți cu un design de bază în pixeli, apoi convertiți în unități relative pentru scalabilitate
  • Gestionarea punctelor de rupere: Utilizați REM-uri pentru spațiere consistentă pe diferite dimensiuni ale viewport-ului
  • Scalarea componentelor: Asigurați-vă că elementele UI mențin relații proporționale atunci când viewport-ul se schimbă
1/* Convertiți valorile fixe în pixeli în unități responsivă REM */
2.container {
3  /* Din: padding: 20px; */
4  padding: 1.25rem; /* 20px ÷ 16px = 1.25rem */
5  
6  /* Din: margin-bottom: 32px; */
7  margin-bottom: 2rem; /* 32px ÷ 16px = 2rem */
8}
9

Îmbunătățiri ale accesibilității

Folosirea unităților relative îmbunătățește accesibilitatea respectând preferințele utilizatorului:

  • Redimensionarea textului: Atunci când utilizatorii își schimbă dimensiunea fontului în browser, layout-urile bazate pe REM se adaptează corespunzător
  • Funcționalitatea de zoom: Unitățile relative asigură că designurile rămân proporționale atunci când utilizatorii măresc
  • Respectarea preferințelor utilizatorului: Layout-urile bazate pe unități relative onorează setările implicite ale dimensiunii fontului utilizatorului

Sisteme de design bazate pe componente

Sistemele moderne de design beneficiază de utilizarea atentă a unităților:

  • Componente consistente: Utilizați REM pentru consistența globală a spațierii și dimensiunii
  • Module auto-conținute: Utilizați EM pentru elemente care ar trebui să se scaleze împreună cu componentele lor părinte
  • Tokenuri de design: Convertiți între unități atunci când implementați tokenuri de design în contexte diferite

Sisteme tipografice

Crearea unei tipografii armonioase necesită o selecție atentă a unităților:

  • Scalarea tipografiei: Definiți o scară tipografică în REM-uri pentru o progresie consistentă
  • Înălțimi de linie: Utilizați valori fără unitate sau EM-uri pentru înălțimi de linie proporționale
  • Text responsiv: Ajustați dimensiunile fontului pe parcursul punctelor de rupere menținând proporțiile
1/* Sistem tipografic folosind unități REM */
2h1 { font-size: 2.5rem; }    /* 40px */
3h2 { font-size: 2rem; }      /* 32px */
4h3 { font-size: 1.5rem; }    /* 24px */
5h4 { font-size: 1.25rem; }   /* 20px */
6p { font-size: 1rem; }       /* 16px */
7small { font-size: 0.875rem; } /* 14px */
8

Designuri perfecte în pixeli

Atunci când implementați designuri din instrumente precum Figma sau Photoshop:

  • Transferul designului: Convertiți valorile pixelilor din fișierele de design în REM/EM pentru dezvoltare
  • Menținerea preciziei: Asigurați-vă că distanțele și dimensiunile exacte folosind unități relative
  • Integrarea sistemului de design: Traduceți tokenurile de design bazate pe pixeli în unități relative

Unități CSS alternative

Deși PX, REM și EM sunt cele mai comune unități, există alternative demne de luat în considerare:

Unități de viewport (VW, VH)

  • VW (lățimea viewport-ului): 1vw este egal cu 1% din lățimea viewport-ului
  • VH (înălțimea viewport-ului): 1vh este egal cu 1% din înălțimea viewport-ului
  • Caz de utilizare: Crearea de elemente care se scalază direct cu dimensiunea viewport-ului

Procent (%)

  • Relativ la dimensiunile elementului părinte
  • Caz de utilizare: Layout-uri fluide și lățimi responsivă

Unități CH

  • Bazate pe lățimea caracterului "0"
  • Caz de utilizare: Crearea de containere cu un număr specific de caractere pe linie

Unități EX

  • Bazate pe înălțimea caracterului mic "x"
  • Caz de utilizare: Ajustarea fină a tipografiei, în special pentru ajustările x-height

Evoluția unităților CSS în dezvoltarea web

Istoria unităților CSS reflectă evoluția mai largă a designului web, de la layout-uri statice la abordările responsivă și accesibile de astăzi.

Design web timpuriu (anii 1990)

În primele zile ale CSS, pixelii domneau. Designerii web creau layout-uri cu lățimi fixe, de obicei de 640px sau 800px, pentru a se adapta la rezoluțiile comune ale ecranelor. Accesibilitatea și diversitatea dispozitivelor nu erau preocupări majore, iar controlul perfect al pixelilor era obiectivul principal.

Creșterea layout-urilor fluide (începutul anilor 2000)

Pe măsură ce dimensiunile ecranelor s-au diversificat, layout-urile bazate pe procente au câștigat popularitate. Designerii au început să creeze designuri mai flexibile, deși tipografia a rămas adesea în unități de pixeli. Această eră a văzut introducerea unităților EM în CSS, deși adoptarea lor a fost limitată din cauza complexității gestionării dimensiunilor fontului în cascada.

Revoluția mobilă (2007-2010)

Introducerea iPhone-ului în 2007 a transformat designul web. Dintr-o dată, site-urile web trebuiau să funcționeze pe ecrane de dimensiuni de până la 320px lățime. Acest lucru a catalizat interesul pentru tehnicile de design responsiv și unitățile relative. Limitările unităților EM (în special efectul de cascada) au devenit mai evidente pe măsură ce designurile au devenit mai complexe.

Era designului web responsiv (2010-2015)

Articolul influent al lui Ethan Marcotte despre designul web responsiv din 2010 a schimbat modul în care dezvoltatorii abordau unitățile CSS. Unitatea REM a fost introdusă în CSS3, oferind beneficiile scalării relative fără complicațiile unităților EM. Suportul browserelor pentru unitățile REM a crescut constant în această perioadă.

Abordări moderne CSS (2015-prezent)

Dezvoltarea web de astăzi îmbrățișează un amestec de unități pentru scopuri diferite:

  • Unități REM pentru consistența globală și accesibilitate
  • Unități EM pentru scalarea specifică a componentelor
  • Pixeli pentru margini și detalii precise
  • Unități de viewport pentru elemente cu adevărat responsivă
  • Funcția CSS calc() pentru combinarea diferitelor tipuri de unități

Această evoluție reflectă tranziția web-ului de la un mediu bazat pe documente la o platformă complexă de aplicații care trebuie să funcționeze pe nenumărate dispozitive și contexte.

Exemple de cod pentru conversia unităților

Funcții JavaScript pentru conversia unităților

1// Convertiți între unitățile PX, REM și EM
2const pxToRem = (px, rootFontSize = 16) => {
3  return px / rootFontSize;
4};
5
6const pxToEm = (px, parentFontSize = 16) => {
7  return px / parentFontSize;
8};
9
10const remToPx = (rem, rootFontSize = 16) => {
11  return rem * rootFontSize;
12};
13
14const emToPx = (em, parentFontSize = 16) => {
15  return em * parentFontSize;
16};
17
18const remToEm = (rem, rootFontSize = 16, parentFontSize = 16) => {
19  return rem * (rootFontSize / parentFontSize);
20};
21
22const emToRem = (em, parentFontSize = 16, rootFontSize = 16) => {
23  return em * (parentFontSize / rootFontSize);
24};
25
26// Exemplu de utilizare
27console.log(pxToRem(24));  // 1.5
28console.log(remToPx(1.5)); // 24
29console.log(pxToEm(24, 24)); // 1
30console.log(remToEm(2, 16, 32)); // 1
31

Proprietăți CSS personalizate pentru conversia unităților

1:root {
2  /* Dimensiuni de font de bază */
3  --dimensiunea-fontului-rădăcină: 16px;
4  --dimensiunea-fontului-de-bază: var(--dimensiunea-fontului-rădăcină);
5  
6  /* Valori comune în pixeli convertite în REM */
7  --spațiu-4px: 0.25rem;
8  --spațiu-8px: 0.5rem;
9  --spațiu-16px: 1rem;
10  --spațiu-24px: 1.5rem;
11  --spațiu-32px: 2rem;
12  --spațiu-48px: 3rem;
13  
14  /* Scară tipografică */
15  --text-xs: 0.75rem;    /* 12px */
16  --text-sm: 0.875rem;   /* 14px */
17  --text-base: 1rem;     /* 16px */
18  --text-lg: 1.125rem;   /* 18px */
19  --text-xl: 1.25rem;    /* 20px */
20  --text-2xl: 1.5rem;    /* 24px */
21}
22
23/* Exemplu de utilizare */
24.card {
25  padding: var(--spațiu-16px);
26  margin-bottom: var(--spațiu-24px);
27  font-size: var(--text-base);
28}
29
30.card-title {
31  font-size: var(--text-xl);
32  margin-bottom: var(--spațiu-8px);
33}
34

Mixins SCSS pentru conversia unităților

1// Funcții SCSS pentru conversia unităților
2@function px-to-rem($px, $root-font-size: 16) {
3  @return ($px / $root-font-size) * 1rem;
4}
5
6@function px-to-em($px, $parent-font-size: 16) {
7  @return ($px / $parent-font-size) * 1em;
8}
9
10@function rem-to-px($rem, $root-font-size: 16) {
11  @return $rem * $root-font-size * 1px;
12}
13
14// Exemplu de utilizare
15.element {
16  padding: px-to-rem(20);
17  margin: px-to-rem(32);
18  font-size: px-to-rem(18);
19  
20  .nested {
21    // Folosind dimensiunea fontului părinte (18px) pentru conversia EM
22    padding: px-to-em(16, 18);
23    margin-bottom: px-to-em(24, 18);
24  }
25}
26

Converter de unități Python

1def px_to_rem(px, root_font_size=16):
2    """Convertiți pixeli în unități REM"""
3    return px / root_font_size
4
5def rem_to_px(rem, root_font_size=16):
6    """Convertiți unități REM în pixeli"""
7    return rem * root_font_size
8
9def px_to_em(px, parent_font_size=16):
10    """Convertiți pixeli în unități EM"""
11    return px / parent_font_size
12
13def em_to_px(em, parent_font_size=16):
14    """Convertiți unități EM în pixeli"""
15    return em * parent_font_size
16
17# Exemplu de utilizare
18print(f"16px = {px_to_rem(16)}rem")  # 16px = 1.0rem
19print(f"2rem = {rem_to_px(2)}px")    # 2rem = 32px
20print(f"24px = {px_to_em(24, 16)}em")  # 24px = 1.5em
21

Întrebări frecvente

Care este diferența dintre unitățile REM și EM?

Unitățile REM (root em) sunt relative la dimensiunea fontului elementului rădăcină (de obicei, elementul <html>), în timp ce unitățile EM sunt relative la dimensiunea fontului elementului părinte. Această diferență cheie înseamnă că unitățile REM mențin dimensiuni consistente în întreaga documentație, în timp ce unitățile EM pot crea un efect de compunere atunci când elementele sunt imbricate.

Care unitate CSS este cea mai bună pentru designul responsiv?

Nu există o "cea mai bună" unitate pentru toate situațiile. O combinație de unități este de obicei cea mai eficientă:

  • Unități REM pentru tipografie și spațiere consistentă
  • Unități EM pentru scalarea specifică a componentelor
  • Procente sau unități de viewport pentru lățimi de layout
  • Pixeli pentru margini și detalii mici

Abordarea ideală este să folosiți fiecare unitate pentru ceea ce face cel mai bine într-un sistem coerent.

De ce browser-urile au dimensiunea fontului implicit de 16px?

Dimensiunea implicită de 16px a fost stabilită ca un standard de lizibilitate care funcționează bine pe dispozitive. Cercetările au arătat că textul în jurul valorii de 16px este optim pentru citirea pe ecrane la distanțe tipice de vizionare. Această valoare implicită oferă, de asemenea, o bază bună pentru accesibilitate, asigurându-se că textul nu este prea mic pentru majoritatea utilizatorilor.

Pot folosi valori negative cu aceste unități?

Da, CSS acceptă valori negative pentru multe proprietăți folosind orice tip de unitate. Margini negative, translații și poziții sunt cazuri comune de utilizare a valorilor negative. Converterul nostru gestionează corect valorile negative pentru toate tipurile de unități.

Cum funcționează unitățile EM cu elemente imbricate?

Unitățile EM se compun atunci când elementele sunt imbricate. De exemplu:

1.parent {
2  font-size: 16px;
3}
4.child {
5  font-size: 1.5em; /* 24px (16px × 1.5) */
6}
7.grandchild {
8  font-size: 1.5em; /* 36px (24px × 1.5) */
9}
10

Acest efect de compunere poate fi util pentru crearea de designuri proporționale, dar necesită o gestionare atentă pentru a evita scalarea neintenționată.

Cum gestionează browserele redarea subpixelilor cu unități relative?

Browserele gestionează valorile subpixel diferit. Unele browsere rotunjesc la cel mai apropiat pixel, în timp ce altele suportă redarea subpixel pentru o scalare mai lină. Acest lucru poate cauza ocazional discrepanțe minore între browsere, mai ales cu valori REM/EM mici sau atunci când se folosesc transformări. Pentru cele mai multe cazuri de utilizare, aceste diferențe sunt neglijabile.

Care este impactul asupra performanței al utilizării diferitelor unități CSS?

Nu există o diferență semnificativă de performanță între utilizarea pixelilor, REM sau EM în browserele moderne. Alegerea unităților ar trebui să se bazeze pe cerințele de design, comportamentul responsiv și nevoile de accesibilitate, mai degrabă decât pe considerații de performanță.

Referințe și lecturi suplimentare

  1. "CSS Values and Units Module Level 3." W3C Recommendation. https://www.w3.org/TR/css-values-3/

  2. Marcotte, Ethan. "Responsive Web Design." A List Apart, 25 mai 2010. https://alistapart.com/article/responsive-web-design/

  3. Rutter, Richard. "The Elements of Typographic Style Applied to the Web." http://webtypography.net/

  4. "CSS Units." MDN Web Docs. https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Values_and_units

  5. "CSS Pixels vs. Physical Pixels." Stack Overflow Documentation. https://stackoverflow.com/questions/8785643/what-exactly-is-the-difference-between-css-pixels-and-device-pixels

  6. Coyier, Chris. "The Lengths of CSS." CSS-Tricks. https://css-tricks.com/the-lengths-of-css/

  7. "Using CSS custom properties (variables)." MDN Web Docs. https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_custom_properties

  8. "Understanding and Using rem Units in CSS." SitePoint. https://www.sitepoint.com/understanding-and-using-rem-units-in-css/

Încercați converterul nostru de unități astăzi

Încetați să vă luptați cu conversiile manuale ale unităților CSS și lăsați converterul nostru PX, REM și EM să facă munca pentru dumneavoastră. Fie că construiți un site web responsiv, creați un sistem de design sau doar învățați despre unitățile CSS, acest instrument vă va economisi timp și va asigura acuratețea. Introduceți valorile dumneavoastră acum pentru a vedea cât de ușor poate fi conversia unităților!