๊ฐ ๋จ์๋ฅผ ์ ๋ชจ๋ฅด๊ณ px๋ง ์ฃผ๊ตฌ์ฅ์ฐฝ ์ฐ๋ค๊ฐ, ์๊ฐ๋ ๊น์ ์ ๋ฆฌํ ํ์๊ฐ ์์ด์, ์ด๋ฐ ์ ๋ฐ ๊ฐ์๋ค ๋ชจ์ ๋ณด๊ณ , ๊ธฐ๋ก์ผ๋ก ๋จ๊ฒจ๋ดค๋ค.
์์ฝํ์๋ฉด, px์ ๊ณ ์ ๋ ๊ฐ, ๋น์จ์ ๋ฐ์ํ์ง ๋ชปํ๋ ์ฃผ์๊ฐ ํ์ํ๋ค.
em์ ํ ์คํธ์ ๊ด๋ จ์ด ๋์๋ฐ, ์ด๋ค ๋์์ธ์ด ํ ์คํธ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ผ์ ๊ฒฝ์ฐ '๊ทธ ๋น์จ์ ๊ณ์ฐํด์ผ ํ ํ์์ฑ์ด ์์ ๋ ์ ์ฉ'ํ ๋จ์.
rem์ em์ ํ๊ณ๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ํด ๋์จ ๋จ์๋ก, root์ธ <html>์ ๊ธฐ๋ณธ font-size๋ง์ ๊ธฐ์ค์ผ๋ก ๊ณ์ฐํ ์ ์๊ฒ ๋์์ค๋ค.
em(์ )์ ์ด์
- ๊ณผ๊ฑฐ ๊ธ์ ํ์๋ฅผ ์ฐ๋ ์์ , ํฐํธ๋ค์ ๊ธฐ์ค์ ์ด ๋ ํ๋์ ํฐํธ ๊ท๊ฒฉ์ ์ํ๋ฒณ ๋๋ฌธ์ M์ด ๋งก์๋ค. M์ด ๊ฐ์ฅ ํญ์ด ๋๊ณ , ๋ค๋ชจ ํํ๋ฅผ ๋์์ผ๋ฏ๋ก, M์ ๋ด์ ์ปจํ ์ด๋๋ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ค๋ฅธ ์ํ๋ฒณ๋ค์ ๋ชจ๋ ๋ด์ ์ ์์๋ค. ์ด ์ ์ฌ๊ฐํ ์ปจํ ์ด๋ ์์ฒด๊ฐ em์ด๋ผ๋ ๋จ์๋ก ์ด์ด์ก๊ณ , ํ๋์์๋ em(์ )์ ๊ทธ๋๋ก ์ฌ์ฉํ๊ณ ์๋ค.
- ์๋ฌธ์์ ๋ฐ๋ช , ๋ค์ํ ํฐํธ์ ๊ฐ๋ฐ๋ก ํ๋์ ํฐํธ๋ฅผ ๋ง๋ค ๋๋, CSS๋ฅผ ์์ฑํ ๋๋ M์ด ์์ ๊ณผ ๋ค๋ฅด๊ฒ ๋ค๋ชจ ์ปจํ ์ด๋๋ฅผ ๊ฝ ์ฑ์ฐ์ง๋ ์๋๋ค.
.em2 {
background-color: #fff;
text-align: center;
line-height: 1;
width: 1em;
height: 1em;
}
- ์์ฒ๋ผ, ๋ค๋ชจ ์ฌ๊ฐํ ์์ ์ฌ๋ฐฑ์ ๊ฐ์ง 1em ์คํ์ด๊ฐ ๋ง๋ค์ด์ง๋ค.
- px๊ณผ em ์ค ์ด๋ค ์ํฉ์์ ์ด๋ค ๋จ์๋ฅผ ์ธ์ง ๊ณ ๋ฏผ์ด ๋ ๋๋ ๊ธฐ์ค์ด ๋๋ ํฐํธ๊ฐ ์๋์ง ์ฌ๋ถ๋ฅผ ๋ฐ์ง๋ฉด ์กฐ๊ธ ํธํ๋ค. ์๋ ์ด๋ฏธ์ง๋ px, em์ ๊ฐ๊ฐ ์ ์ฉํ์ ๋์ ๋ชจ์ต.
.em {
background-color: #fff;
text-align: center;
border-left: 1em solid orangered;
/* border-left: 1px solid orange; */
}
- em, px์ ๊ทธ๋์ ๋์์ธ์ ์๋์ ๋ฐ๋ผ ๋์ด์ฐ๊ธฐ(๊ณต๋ฐฑ), width, height, padding, margin ๋ฑ์์ ์ ํ์ ์ผ๋ก ์ฌ์ฉํ๋ฉด ๋๋ค.
์ฌ๊ธฐ์, em์ ์ด์ฉํ์ ๋ ์์์ ์ผ์ชฝ border๋ ์ ์ฌ๊ฐํ์ ์ทจํ๊ณ ์์ง ์์ผ๋, ์๋์ ๋ ๋ฒ์งธ ์ด๋ฏธ์ง์ฒ๋ผ, line-height๋ฅผ 1๋ก ๋ง์ถฐ์ค๋ค.
.em {
background-color: #fff;
text-align: center;
border-left: 1em solid orangered;
line-height: 1;
}
em ๋จ์๋ฅผ ์ด์ฉํ ์์ (ํ ์คํธ์์์ ๋น์จ, letter-spacinig)
ํ ์คํธ์์์ ๋น์จ
๊ธฐ๋ณธ <h2> ํ๊ทธ๋ฅผ inspect ํด๋ณด๋ฉด, ํฌ๋กฌ ๊ฐ๋ฐ์ ๋๊ตฌ user agent stylesheet ์น์ ์์ font-size๋ 1.5em์ด๋ผ๊ณ ๋์จ๋ค. html ๋ฃจํธ ํ๊ทธ๋ก๋ถํฐ ์์๋ฐ์ ํฐํธ ์ฌ์ด์ฆ์ 1.5๋ฐฐ๋ฅผ ํ ๋น์จ์ด๋ผ๋ ์๋ฏธ์ด๋ค.
.box {
width: 500px;
background-color: #fff;
/* font-size: 40px; */
}
.box h2 {
/* h2๋ ๋ธ๋ผ์ฐ์ ์์ ์๋์ผ๋ก ๊ธฐ๋ณธ font-size ๋ถ์ฌํจ. */
color: orangered;
padding: 20px;
}
.box p {
padding: 0 20px 20px;
}
.box img {
width: 100%;
}
.box {
width: 500px;
background-color: #fff;
font-size: 40px; /* font-size๋ฅผ box์ ๋ถ์ฌํจ. */
}
.box h2 {
/* .box๋ก๋ถํฐ ์์๋๋ font-size์ ๋ง์ถฐ,
h2์ font-size๋ 1.5em์ธ ๊ฐ์ ๋ฐ๋ผ computed๋๊ณ ,
1.5๋ฐฐ๊ฐ ๋ ๊ฒ์ด๋ค. */
color: orangered;
padding: 20px;
}
.box p {
/* p ํ๊ทธ ์ญ์ .box๋ก๋ถํฐ ์์๋ฐ์ font-size์ ๋ง์ถฐ,
๋น๋กํด ๋์ด๋ ๊ฒ์ด๋ค. ํ์ง๋ง, padding ๊ฐ์ pixel๋ก
๊ณ ์ ๋์ด ์์ผ๋ฏ๋ก, ์ฒซ ๋ฒ์งธ ์ด๋ฏธ์ง์ padding์ ๊ฐ์. */
padding: 0 20px 20px;
}
.box img {
width: 100%;
}
- ๊ฐ๊ฒฉ ํ์, ๋ถ์ฐ ์ค๋ช ๋ฑ ๊ฐ์ <h2> ํ๊ทธ ์์์๋ ๋น์จ์ด ๋ฌ๋ผ์ผ ํ๋ sub-text ๋ฑ์ ์์ฑํด์ผ ํ ๋ ์ญ์ em ๋จ์๋ฅผ ์ฐ๋ฉด ์ ์ง ๋ณด์์ ์ฝ๋ค.
- <h2>๋ก๋ถํฐ ์์๋๋ font-size์ 0.5๋ฐฐ๋ฅผ ํ ๋น์จ๋ก computed๋์ด ์ ์ฉ์ด ๋๋ฏ๋ก, <h2> ์ฌ์ด์ฆ๊ฐ ๋ฌ๋ผ์ ธ๋ ๋น์จ์ด ๊นจ์ง์ง ์๋๋ค.
.box h2 span {
font-size: 0.5em;
color: lightgray;
}
- .box์ font-size๋ฅผ 40px๋ก ๋๋ ธ์ ๋ <h2> ํ๊ทธ์ ํ์์ <span> ํ๊ทธ ๋น์จ์ด ๊นจ์ง์ง ์๋ ๊ฒ์ ์ ์ ์๋ค.
.box {
width: 500px;
background-color: #fff;
font-size: 40px;
}
.box h2 span {
font-size: 0.5em;
color: lightgray;
/* ์์ฒจ์ */
vertical-align: super;
}
letter-spacinig
- ์๊ฐ์ด๋ผ๋ ๊ฐ๋ ์ญ์ ๋น์จ์ ๋ฐ๋ผ๊ฐ๋ค. em์ด๋ผ๋ ๋จ์๊ฐ ์ด์ธ๋ฆฐ๋ค.
.box h2 span {
font-size: 0.5em;
color: lightgray;
letter-spacing: 0.2em;
}
ETC
์ด๋ฐ ์์ผ๋ก ํ ์คํธ ์์ ๊พธ๋ฐ ์ญ์ ํ ์คํธ์ ๊ธฐ๋ฐํ ๋น์จ๋ก ์ค์ฌ์ง๊ณ ๋์ฌ์ง๊ธฐ ๋๋ฌธ์, ์๋ ์ฝ๋์ฒ๋ผ ์์ฑํด์ค๋ค.
.box h2:before {
content: '';
display: inline-block;
background-color: brown;
width: 0.5em;
height: 0.5em;
border-radius: 50%;
margin-right: 0.5em;
}
Component ๋ฑ์ ๋ง๋ค ๋
- button-wrapper <div>๊ฐ .button์ด๋ผ๋ <a> ํ๊ทธ๋ฅผ ๊ฐ์ผ ํํ๋ฅผ ์์ฑํ์ ๋,font-size๋ง ๋ณ๊ฒฝํด ์ฌ๋ฌ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค ์ ์๋๋ก ํ ๋๋ em์ด ์ฐ์ธ๋ค.
.button-wrapper {
border-top: 2px solid #ddd;
padding: 20px;
}
.button {
background-color: #369;
color: white;
padding: 0.5em 1em;
/* a ํ๊ทธ๋ inline ํ๊ทธ์ด๋ฏ๋ก, ์ํ ํจ๋ฉ์ด ๊ณต๊ฐ์ ์ฐจ์งํ์ง ๋ชปํ๋ค. */
display: inline;
text-decoration: none;
}
.button.small {
font-size: 12px;
}
.button.large {
font-size: 20px;
}
rem ๋จ์์ ํ์์ฑ
em ์์ฑ์ ์ด์ฉํด css๋ฅผ ์์ฑํ๋ค๊ฐ, ๋งค์ฐ ๊น์ ๋จ๊ณ์ ์ด๋ฅธ๋ค๋ฉด, ์ชผ๊ฐ์ง ๋๋ก ์ชผ๊ฐ์ง ๋น์จ์ ๋ธ๋ผ์ฐ์ ๊ฐ ์ง์ํด์ฃผ์ง ๋ชปํ๋ ๊ฒฝ์ฐ๋ ์์ ๊ฒ์ด๊ณ , ๊ฐ๋ฐ์๊ฐ ์์ฑํ๋ฉด์๋ ์์ ์๊ฐ ์์ ๊ฒ์ด๋ค. ๊ทธ๋์ 'root'์์ ๋ฐ์จ 'rem' ๋จ์๋ฅผ ์ธ ์ ์๋ค. ์ข ๋ ํจ์จ์ ์ผ๋ก ์ฐ๊ธฐ ์ํจ์ด๋ค.
root = <html>
์ฆ, 16px์ ๊ธฐ๋ณธ์ผ๋ก ํ๋ <html>์ ๊ธฐ์ค์ผ๋ก ์ผ๋๋ค๋ ์๋ฏธ.
์ฐธ๊ณ
www.youtube.com/watch?v=AfxL9OKBBCU
'๐ฉโ๐ป > CSS3' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[CSS] ์์๋ฅผ fadeoutํ ๋ค์๋ ์ฌ์ ํ clickableํ ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ (0) | 2021.03.06 |
---|---|
[CSS] Attribute Selector (0) | 2021.03.06 |
[responsive-web] CSS grid-layout repeat() (auto-fill, auto-fit) (0) | 2021.01.07 |
[interactive-web] will-change (0) | 2021.01.06 |
HTTP/1๊ณผ HTTP/2์ ๋น๊ต ๊ทธ๋ฆฌ๊ณ CSS ์คํ๋ผ์ดํธ(Sprite) ๊ธฐ๋ฒ์ ์ ํจ์ฑ (0) | 2020.10.27 |