🛠️

Whiz Tools

Build • Create • Innovate

PX till REM till EM-omvandlare: CSS-enhetsberäknare

Konvertera mellan pixlar (PX), root em (REM) och em (EM) CSS-enheter med denna enkla beräknare. Viktig för responsiv webbdesign och utveckling.

PX, REM och EM Enhetsomvandlare

Konvertera mellan pixlar (PX), root em (REM) och em (EM) enheter. Ange ett värde i något fält för att se motsvarande värden i de andra enheterna.

px
px
Enter a value in px units
px
Enter a value in rem units
rem
Enter a value in em units
em
Visualisering inte tillgänglig för negativa eller nollvärden

Omvandlingsformler

  • PX till REM: värde i px ÷ rot typsnittsstorlek
  • PX till EM: värde i px ÷ typsnittsstorlek för överordnat element
  • REM till PX: värde i rem × rot typsnittsstorlek
  • EM till PX: värde i em × typsnittsstorlek för överordnat element
📚

Dokumentation

PX, REM och EM Enhetsomvandlare: Viktiga CSS-enheter förklarade

Introduktion till CSS-enhetskonvertering

Att förstå och konvertera mellan CSS-enheter är avgörande för responsiv webbdesign och utveckling. PX (pixel), REM (root em) och EM-enheter är grundläggande byggstenar som avgör hur element storleksanpassas och positioneras över olika enheter och skärmstorlekar. Detta omfattande enhetsomvandlarverktyg gör att du enkelt kan översätta värden mellan dessa tre viktiga CSS-enheter, vilket hjälper dig att skapa mer flexibla och underhållbara webb layouter.

Pixlar (PX) är fasta storleksenheter som ger exakt kontroll men saknar skalbarhet, medan REM-enheter skalar i förhållande till rot-elementets teckenstorlek, och EM-enheter skalar i förhållande till deras föräldraelements teckenstorlek. Att konvertera mellan dessa enheter kan vara utmanande, särskilt när man arbetar med komplexa designer eller när man stöder tillgänglighetsfunktioner som textförstoring. Vår PX, REM och EM-omvandlare förenklar denna process, så att du kan fokusera på att skapa vackra, responsiva designer.

Förstå CSS-enheter: PX, REM och EM

Vad är Pixlar (PX)?

Pixlar (PX) är den mest grundläggande och vanligt använda CSS-enheten. En pixel är en enda punkt i ett digitalt bildrutnät och representerar det minsta kontrollerbara elementet på en skärm. I CSS ger pixlar en fast storleksenhet som förblir konsekvent oavsett andra stilfaktorer.

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

Nyckelkarakteristika för pixlar:

  • Fasta storleksenheter som inte skalar automatiskt
  • Ger exakt kontroll över elementdimensioner
  • Lätt att förstå och visualisera
  • Mindre idealiska för responsiv design och tillgänglighet

Vad är REM-enheter?

REM (root em) enheter är relativa enheter som skalar baserat på rot-elementets teckenstorlek (vanligtvis <html>-elementet). Som standard sätter de flesta webbläsare rot-teckenstorleken till 16px, vilket gör att 1rem är lika med 16px om det inte uttryckligen ändras.

1html {
2  font-size: 16px; /* Standard i de flesta webbläsare */
3}
4
5.element {
6  width: 12.5rem; /* Motsvarar 200px med standard rot-teckenstorlek */
7  font-size: 1rem; /* Motsvarar 16px */
8  margin: 0.625rem; /* Motsvarar 10px */
9}
10

Nyckelkarakteristika för REM-enheter:

  • Skalar i förhållande till rot-elementets teckenstorlek
  • Upprätthåller konsekventa proportioner genom hela dokumentet
  • Stöder bättre tillgänglighet genom globala justeringar av teckenstorlek
  • Idealisk för responsiva layouter och typografi

Vad är EM-enheter?

EM-enheter är relativa enheter som skalar baserat på sitt föräldraelements teckenstorlek. Om ingen teckenstorlek anges för föräldern, kommer EM att referera till den ärvda teckenstorleken.

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

Nyckelkarakteristika för EM-enheter:

  • Skalar i förhållande till sitt föräldraelements teckenstorlek
  • Skapar en kaskadeffekt när de är inbäddade
  • Användbara för att skapa proportionella designer inom komponenter
  • Kan bli komplexa att hantera med djupt inbäddade element

Omvandlingsformler och beräkningar

Att förstå de matematiska relationerna mellan PX, REM och EM-enheter är avgörande för exakta konverteringar. Här är formlerna som används i vår omvandlare:

PX till REM-konvertering

För att konvertera pixlar till REM-enheter, dela pixelvärdet med rot-teckenstorleken:

REM=PXrootFontSizeREM = \frac{PX}{rootFontSize}

Till exempel, med standard rot-teckenstorlek på 16px:

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

PX till EM-konvertering

För att konvertera pixlar till EM-enheter, dela pixelvärdet med föräldraelementets teckenstorlek:

EM=PXparentFontSizeEM = \frac{PX}{parentFontSize}

Till exempel, med en föräldra-teckenstorlek på 16px:

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

REM till PX-konvertering

För att konvertera REM-enheter till pixlar, multiplicera REM-värdet med rot-teckenstorleken:

PX=REM×rootFontSizePX = REM \times rootFontSize

Till exempel, med standard rot-teckenstorlek på 16px:

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

EM till PX-konvertering

För att konvertera EM-enheter till pixlar, multiplicera EM-värdet med föräldraelementets teckenstorlek:

PX=EM×parentFontSizePX = EM \times parentFontSize

Till exempel, med en föräldra-teckenstorlek på 16px:

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

REM till EM-konvertering

För att konvertera REM-enheter till EM-enheter, måste du ta hänsyn till både rot-teckenstorleken och föräldraelementets teckenstorlek:

EM=REM×rootFontSizeparentFontSizeEM = REM \times \frac{rootFontSize}{parentFontSize}

Om både rot- och föräldra-teckenstorlekarna är desamma (t.ex. 16px), då 1rem = 1em.

EM till REM-konvertering

För att konvertera EM-enheter till REM-enheter, använd följande formel:

REM=EM×parentFontSizerootFontSizeREM = EM \times \frac{parentFontSize}{rootFontSize}

Återigen, om båda teckenstorlekarna är lika, då 1em = 1rem.

Hur man använder PX, REM och EM Enhetsomvandlaren

Vårt enhetsomvandlarverktyg gör det enkelt att översätta värden mellan PX, REM och EM-enheter. Här är en steg-för-steg-guide för att använda omvandlaren effektivt:

Grundläggande användning

  1. Ange ett värde i vilket inmatningsfält som helst (PX, REM eller EM)
  2. Omvandlaren kommer att automatiskt beräkna och visa de motsvarande värdena i de andra två enheterna
  3. Justera rot-teckenstorleken (standard: 16px) för att se hur det påverkar REM-konverteringarna
  4. Justera föräldra-teckenstorleken (standard: 16px) för att se hur det påverkar EM-konverteringarna
  5. Använd kopieringsknappen bredvid varje fält för att kopiera värdet till ditt urklipp

Avancerade funktioner

  • Visuell jämförelse: Verktyget ger en visuell representation av de relativa storlekarna för varje enhet
  • Precision kontroll: Alla beräkningar upprätthåller 4 decimaler för noggrannhet
  • Negativa värden: Omvandlaren stöder negativa värden, som är giltiga i CSS för egenskaper som marginaler
  • Realtidsuppdateringar: Varje ändring av inmatningsvärden eller teckenstorleksinställningar uppdaterar alla beräkningar omedelbart

Tips för exakta konverteringar

  • För de mest exakta REM-konverteringarna, ställ in rot-teckenstorleken för att matcha ditt projekts <html> teckenstorlek
  • För exakta EM-konverteringar, ställ in föräldra-teckenstorleken för att matcha teckenstorleken på det föräldraelement du arbetar med
  • Kom ihåg att webbläsarens standardteckenstorlekar kan variera, även om 16px är den vanligaste standarden

Praktiska användningsfall för CSS-enhetskonvertering

Att förstå när man ska använda varje CSS-enhet och hur man konverterar mellan dem är avgörande för effektiv webb utveckling. Här är några praktiska tillämpningar och scenarier där vår enhetsomvandlare visar sig vara ovärderlig:

Responsiv Webbdesign

Att konvertera mellan enheter är avgörande för att skapa verkligt responsiva designer:

  • Mobil-först strategi: Börja med en basdesign i pixlar, konvertera sedan till relativa enheter för skalbarhet
  • Brytpunkts hantering: Använd REM för konsekvent avstånd över olika vyportstorlekar
  • Komponentskalning: Se till att UI-element upprätthåller proportionella relationer när vyporten ändras
1/* Konvertera fasta pixelvärden till responsiva REM-enheter */
2.container {
3  /* Från: padding: 20px; */
4  padding: 1.25rem; /* 20px ÷ 16px = 1.25rem */
5  
6  /* Från: margin-bottom: 32px; */
7  margin-bottom: 2rem; /* 32px ÷ 16px = 2rem */
8}
9

Tillgänglighetsförbättringar

Att använda relativa enheter förbättrar tillgängligheten genom att respektera användarpreferenser:

  • Textförstoring: När användare ändrar sin webbläsares teckenstorlek, anpassar sig REM-baserade layouter korrekt
  • Zoomfunktionalitet: Relativa enheter säkerställer att designer förblir proportionella när användare zoomar in
  • Respekt för användarpreferenser: Layouter baserade på relativa enheter hedrar användarens standardteckenstorleksinställningar

Komponentbaserade Designsystem

Moderna designsystem drar nytta av genomtänkt enhetsanvändning:

  • Konsekventa komponenter: Använd REM för global avstånd och storlekskonsekvens
  • Självständiga moduler: Använd EM för element som ska skala med sina föräldrakomponenter
  • Design tokens: Konvertera mellan enheter när du implementerar design tokens över olika sammanhang

Typografisystem

Att skapa harmonisk typografi kräver noggrant enhetsval:

  • Typskalor: Definiera en typografisk skala i REM för konsekvent progression
  • Radavstånd: Använd enhetslösa värden eller EM för proportionella radavstånd
  • Responsiv text: Justera teckenstorlekar över brytpunkter medan proportioner upprätthålls
1/* Typografisystem som använder REM-enheter */
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

Pixel-perfekta designer

När man implementerar designer från verktyg som Figma eller Photoshop:

  • Designöverföring: Konvertera pixelvärden från designfiler till REM/EM för utveckling
  • Upprätthålla precision: Säkerställ exakt avstånd och storlek medan du använder relativa enheter
  • Integrering av designsystem: Översätt pixelbaserade design tokens till relativa enheter

Alternativa CSS-enheter

Även om PX, REM och EM är de vanligaste enheterna, finns det alternativ som är värda att överväga:

Vyportenheter (VW, VH)

  • VW (vyportbredd): 1vw är lika med 1% av vyportens bredd
  • VH (vyporthöjd): 1vh är lika med 1% av vyportens höjd
  • Användningsfall: Skapa element som skalar direkt med vyportens storlek

Procent (%)

  • Relativt till föräldraelementets dimensioner
  • Användningsfall: Flytande layouter och responsiva bredder

CH-enheter

  • Baserat på bredden av "0"-tecknet
  • Användningsfall: Skapa behållare med ett specifikt teckenantal per rad

EX-enheter

  • Baserat på höjden av det gemena "x"-tecknet
  • Användningsfall: Finjustera typografi, särskilt för x-höjdjusteringar

Utvecklingen av CSS-enheter inom webbdesign

Historien om CSS-enheter speglar den bredare utvecklingen av webbdesign, från statiska layouter till dagens responsiva, tillgängliga tillvägagångssätt.

Tidig webbdesign (1990-talet)

I de tidiga dagarna av CSS regerade pixlar. Webbdesigners skapade fasta layouter, vanligtvis 640px eller 800px breda för att rymma vanliga skärmupplösningar. Tillgänglighet och enhetsdiversitet var inte stora bekymmer, och pixelperfekt kontroll var det primära målet.

Uppkomsten av flytande layouter (Tidigt 2000-tal)

När skärmstorlekar diversifierades, blev procentbaserade layouter populära. Designers började skapa mer flexibla designer, även om typografi ofta förblev i pixelenheter. Denna era såg introduktionen av EM-enheter i CSS, även om deras antagande var begränsat på grund av komplexiteten att hantera kaskadande teckenstorlekar.

Mobilrevolutionen (2007-2010)

Introduktionen av iPhone 2007 förändrade webbdesign. Plötsligt behövde webbplatser fungera på skärmar så små som 320px breda. Detta katalyserade intresset för responsiva designtekniker och relativa enheter. Begränsningarna med EM-enheter (särskilt den kaskadande effekten) blev mer uppenbara när designer blev mer komplexa.

Responsiv webbdesign era (2010-2015)

Ethan Marcottes inflytelserika artikel om responsiv webbdesign 2010 förändrade hur utvecklare närmade sig CSS-enheter. REM-enheten introducerades i CSS3, vilket erbjöd fördelarna med relativ skalning utan de kaskadkomplikationer som EM-enheter hade. Webbläsarstöd för REM-enheter växte stadigt under denna period.

Moderna CSS-tillvägagångssätt (2015-nu)

Dagens webb utveckling omfamnar en blandning av enheter för olika ändamål:

  • REM-enheter för global konsekvens och tillgänglighet
  • EM-enheter för komponentbaserad skalning
  • Pixlar för kanter och små detaljer
  • Vyportenheter för verkligt responsiva element
  • CSS calc()-funktion för att kombinera olika enhetstyper

Denna utveckling speglar webbens övergång från ett dokumentbaserat medium till en komplex applikationsplattform som måste fungera över otaliga enheter och sammanhang.

Kodexempel för enhetskonvertering

JavaScript Enhetsomvandlarfunktioner

1// Konvertera mellan PX, REM och EM-enheter
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// Exempelanvändning
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

CSS Anpassade Egenskaper för Enhetskonvertering

1:root {
2  /* Grundteckenstorlekar */
3  --root-font-size: 16px;
4  --base-font-size: var(--root-font-size);
5  
6  /* Vanliga pixelvärden konverterade till REM */
7  --space-4px: 0.25rem;
8  --space-8px: 0.5rem;
9  --space-16px: 1rem;
10  --space-24px: 1.5rem;
11  --space-32px: 2rem;
12  --space-48px: 3rem;
13  
14  /* Typografisk skala */
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/* Exempel på användning */
24.card {
25  padding: var(--space-16px);
26  margin-bottom: var(--space-24px);
27  font-size: var(--text-base);
28}
29
30.card-title {
31  font-size: var(--text-xl);
32  margin-bottom: var(--space-8px);
33}
34

SCSS Mixins för Enhetskonvertering

1// SCSS-funktioner för enhetskonvertering
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// Exempel på användning
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    // Använda föräldra teckenstorlek (18px) för em-konvertering
22    padding: px-to-em(16, 18);
23    margin-bottom: px-to-em(24, 18);
24  }
25}
26

Python Enhetsomvandlare

1def px_to_rem(px, root_font_size=16):
2    """Konvertera pixlar till REM-enheter"""
3    return px / root_font_size
4
5def rem_to_px(rem, root_font_size=16):
6    """Konvertera REM-enheter till pixlar"""
7    return rem * root_font_size
8
9def px_to_em(px, parent_font_size=16):
10    """Konvertera pixlar till EM-enheter"""
11    return px / parent_font_size
12
13def em_to_px(em, parent_font_size=16):
14    """Konvertera EM-enheter till pixlar"""
15    return em * parent_font_size
16
17# Exempel på användning
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

Vanliga Frågor

Vad är skillnaden mellan REM och EM-enheter?

REM (root em) enheter är relativa mot rot-elementets teckenstorlek (vanligtvis <html>-elementet), medan EM-enheter är relativa mot sitt föräldraelements teckenstorlek. Denna viktiga skillnad innebär att REM-enheter upprätthåller konsekvent storlek genom hela dokumentet oavsett inbäddning, medan EM-enheter kan skapa en kaskadeffekt när element är inbäddade.

Vilken CSS-enhet är bäst för responsiv design?

Det finns ingen enskild "bästa" enhet för alla situationer. En kombination av enheter är vanligtvis mest effektiv:

  • REM-enheter för typografi och konsekvent avstånd
  • EM-enheter för komponent-specifik skalning
  • Procent eller vyportenheter för layoutbredder
  • Pixlar för kanter och små detaljer

Den idealiska metoden är att använda varje enhet för vad den gör bäst inom ett sammanhängande system.

Varför har webbläsare standard på 16px teckenstorlek?

Den 16px standarden fastställdes som en läsbarhetsstandard som fungerar bra över enheter. Forskning har visat att text runt 16px är optimal för läsning på skärmar på typiska visningsavstånd. Denna standard ger också en bra grund för tillgänglighet, vilket säkerställer att text inte är för liten för de flesta användare.

Kan jag använda negativa värden med dessa enheter?

Ja, CSS stöder negativa värden för många egenskaper med vilken enhet som helst. Negativa marginaler, översättningar och positioner är vanliga användningsfall för negativa värden. Vår omvandlare hanterar negativa värden korrekt för alla enhetstyper.

Hur fungerar EM-enheter med inbäddade element?

EM-enheter kaskaderar när element är inbäddade. Till exempel:

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

Denna kaskadeffekt kan vara användbar för att skapa proportionella designer men kräver noggrant hantering för att undvika oavsiktlig skalning.

Hur hanterar webbläsare subpixel-rendering med relativa enheter?

Webbläsare hanterar subpixelvärden olika. Vissa webbläsare rundar till närmaste pixel, medan andra stöder subpixel-rendering för smidigare skalning. Detta kan ibland orsaka små inkonsekvenser mellan webbläsare, särskilt med små REM/EM-värden eller när man använder transformationer. För de flesta användningsfall är dessa skillnader försumbar.

Vad är prestandapåverkan av att använda olika CSS-enheter?

Det finns ingen betydande prestandaskillnad mellan att använda pixlar, REM eller EM-enheter i moderna webbläsare. Valet av enheter bör baseras på designkrav, responsivt beteende och tillgänglighetsbehov snarare än prestandahänsyn.

Referenser och Vidare Läsning

  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 maj 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/

Prova Vår Enhetsomvandlare Idag

Sluta kämpa med manuella CSS-enhetskonverteringar och låt vår PX, REM och EM Enhetsomvandlare göra jobbet för dig. Oavsett om du bygger en responsiv webbplats, skapar ett designsystem eller bara lär dig om CSS-enheter, kommer detta verktyg att spara tid och säkerställa noggrannhet. Ange dina värden nu för att se hur enkelt enhetskonvertering kan vara!