Convertiți între pixeli (PX), root em (REM) și em (EM) cu acest calculator simplu. Esențial pentru designul și dezvoltarea web responsive.
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.
Î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ă.
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ăț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:
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:
Înțelegerea relațiilor matematice dintre unitățile PX, REM și EM este crucială pentru conversii precise. Iată formulele utilizate în converterul nostru:
Pentru a converti pixeli în unități REM, împărțiți valoarea pixelilor la dimensiunea fontului rădăcină:
De exemplu, cu dimensiunea fontului rădăcină implicită de 16px:
Pentru a converti pixeli în unități EM, împărțiți valoarea pixelilor la dimensiunea fontului elementului părinte:
De exemplu, cu o dimensiune a fontului părinte de 16px:
Pentru a converti unitățile REM în pixeli, înmulțiți valoarea REM cu dimensiunea fontului rădăcină:
De exemplu, cu dimensiunea fontului rădăcină implicită de 16px:
Pentru a converti unitățile EM în pixeli, înmulțiți valoarea EM cu dimensiunea fontului elementului părinte:
De exemplu, cu o dimensiune a fontului părinte de 16px:
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:
Dacă dimensiunile fonturilor rădăcină și părinte sunt aceleași (de exemplu, 16px), atunci 1rem = 1em.
Pentru a converti unitățile EM în unități REM, utilizați următoarea formulă:
Din nou, dacă ambele dimensiuni ale fontului sunt egale, atunci 1em = 1rem.
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:
<html>
a proiectului dumneavoastrăÎ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:
Conversia între unități este esențială pentru crearea de designuri cu adevărat responsivă:
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
Folosirea unităților relative îmbunătățește accesibilitatea respectând preferințele utilizatorului:
Sistemele moderne de design beneficiază de utilizarea atentă a unităților:
Crearea unei tipografii armonioase necesită o selecție atentă a unităților:
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
Atunci când implementați designuri din instrumente precum Figma sau Photoshop:
Deși PX, REM și EM sunt cele mai comune unități, există alternative demne de luat în considerare:
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.
Î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.
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.
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.
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ă.
Dezvoltarea web de astăzi îmbrățișează un amestec de unități pentru scopuri diferite:
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.
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
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
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
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
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.
Nu există o "cea mai bună" unitate pentru toate situațiile. O combinație de unități este de obicei cea mai eficientă:
Abordarea ideală este să folosiți fiecare unitate pentru ceea ce face cel mai bine într-un sistem coerent.
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.
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.
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ă.
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.
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ță.
"CSS Values and Units Module Level 3." W3C Recommendation. https://www.w3.org/TR/css-values-3/
Marcotte, Ethan. "Responsive Web Design." A List Apart, 25 mai 2010. https://alistapart.com/article/responsive-web-design/
Rutter, Richard. "The Elements of Typographic Style Applied to the Web." http://webtypography.net/
"CSS Units." MDN Web Docs. https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Values_and_units
"CSS Pixels vs. Physical Pixels." Stack Overflow Documentation. https://stackoverflow.com/questions/8785643/what-exactly-is-the-difference-between-css-pixels-and-device-pixels
Coyier, Chris. "The Lengths of CSS." CSS-Tricks. https://css-tricks.com/the-lengths-of-css/
"Using CSS custom properties (variables)." MDN Web Docs. https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_custom_properties
"Understanding and Using rem Units in CSS." SitePoint. https://www.sitepoint.com/understanding-and-using-rem-units-in-css/
Î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!
Descoperiți mai multe instrumente care ar putea fi utile pentru fluxul dvs. de lucru