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.
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:
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:
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:
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:
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:
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:
Å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
- Ange ett värde i vilket inmatningsfält som helst (PX, REM eller EM)
- Omvandlaren kommer att automatiskt beräkna och visa de motsvarande värdena i de andra två enheterna
- Justera rot-teckenstorleken (standard: 16px) för att se hur det påverkar REM-konverteringarna
- Justera föräldra-teckenstorleken (standard: 16px) för att se hur det påverkar EM-konverteringarna
- 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
-
"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 maj 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/
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!
Återkoppling
Klicka på återkopplingsmeddelandet för att börja ge återkoppling om detta verktyg
Relaterade verktyg
Upptäck fler verktyg som kan vara användbara för ditt arbetsflöde