본문으둜 κ±΄λ„ˆλ›°κΈ°

CSS 속성 02. margin

❗️ ν•΄λ‹Ή 글은 패슀트캠퍼슀 - ν”„λ‘ νŠΈμ—”λ“œ 개발 κ°•μ˜μ—μ„œ HTML & CSS, SASS(SCSS) Part의 λ°•μ˜μ›… κ°•μ‚¬λ‹˜μ˜ κ°•μ˜μžλ£Œλ₯Ό μ •λ¦¬ν•œ κ²ƒμž…λ‹ˆλ‹€.

margin#

μš”μ†Œμ˜ ’외뢀(λ°”κΉ₯) 여백’을 지정 - 단좕 속성 (μœ„ 였λ₯Έμͺ½ μ•„λž˜ μ™Όμͺ½)

음수 값도 μ‚¬μš©ν•  수 μžˆλ‹€.

속성 κ°’#

κ°’μ˜λ―ΈκΈ°λ³Έκ°’
λ‹¨μœ„px , em , cm λ“± λ‹¨μœ„λ‘œ 지정
autoλΈŒλΌμš°μ €κ°€ λ„ˆλΉ„λ₯Ό 계산
%λΆ€λͺ¨ μš”μ†Œμ˜ λ„ˆλΉ„μ— λŒ€ν•œ λΉ„μœ¨λ‘œ 지정

% λ₯Ό margin 의 κ°’μœΌλ‘œ μ‚¬μš©ν•  경우 λΆ€λͺ¨ μš”μ†Œμ˜ κ°€λ‘œ λ„ˆλΉ„μ— λŒ€ν•œ λΉ„μœ¨λ‘œ margin 을 μ‚¬μš©ν•˜κ²Œ λœλ‹€.


μ‚¬μš©λ²•#

margin: μœ„ 우 μ•„λž˜ 쒌;       /* μ‹œκ³„ λ°©ν–₯ */margin: μœ„ [쒌, 우] μ•„λž˜;    /* μœ„ μ•„λž˜ λ°©ν–₯ */margin: [μœ„, μ•„λž˜] [쒌, 우]; /* μœ„,μ•„λž˜ + 쒌,우 */margin: [μœ„, μ•„λž˜, 쒌, 우];  /* λͺ¨λ“  λ°©ν–₯ */
.box {margin: 10px 20px 30px 40px;margin: 10px 20px 40px;margin: 10px 40px;margin: 10px;}

margin-top, right, bottom, left#

μš”μ†Œμ˜ ’외뢀(λ°”κΉ₯ μœ„μͺ½ μ—¬λ°±)’을 지정

.box1 {margin: 10px 20px 30px 40px;  /* 단좕 속성 */}.box2 {/* κ°œλ³„ 속성 */margin-top: 10px;margin-right: 20px;margin-bottom: 10px;margin-left: 10px;}

λ§ˆμ§„ 쀑볡(병합, Collapse)#

λ§ˆμ§„μ˜ νŠΉμ • 값듀이 β€™μ€‘λ³΅β€™λ˜μ–΄ ν•©μ³μ§€λŠ” ν˜„μƒ

  1. ν˜•μ œ μš”μ†Œλ“€μ˜ margin-top κ³Ό margin-bottom 이 λ§Œλ‚¬μ„ λ•Œ

  2. λΆ€λͺ¨ μš”μ†Œμ˜ margin-top κ³Ό μžμ‹ μš”μ†Œμ˜ margin-top 이 λ§Œλ‚¬μ„ λ•Œ

  3. λΆ€λͺ¨ μš”μ†Œμ˜ margin-bottom κ³Ό μžμ‹ μš”μ†Œμ˜ margin-bottom 이 λ§Œλ‚¬μ„ λ•Œ

β€™λ§ˆμ§„ 쀑볡’은 버그(였λ₯˜)κ°€ μ•„λ‹ˆλ‹€. ν˜„μƒμ„ μš°νšŒν•˜κ±°λ‚˜ μ‘μš©ν•  수 μžˆλ‹€.


ν˜•μ œ μš”μ†ŒλΌλ¦¬ λ§Œλ‚¬μ„ λ•Œ#

<div class="parent"><div class="child"></div><div class="child"></div><div class="child"></div></div>
.parent {}.child {width: 100px;height: 100px;background: tomato;float: left; /* 블둝 μš”μ†Œκ°€ μˆ˜ν‰μœΌλ‘œ μŒ“μ΄κ²Œ ν•΄μ€Œ */margin: 20px;}

μœ„μ˜ μ˜ˆμ œμ—μ„œ ν˜•μ œ μš”μ†Œλ“€μ˜ margin-right 와 margin-left λŠ” 20px 이 더해져 40px 이 λœλ‹€.

.parent {}.child {width: 100px;height: 100px;background: tomato;margin: 20px;}

ν•˜μ§€λ§Œ float: left; 속성을 μ œκ±°ν•˜λ©΄, 블둝 μš”μ†Œκ°€ 수직으둜 μŒ“μ΄κ²Œ λ˜λŠ”λ° 이 λ•Œν˜•μ œ μš”μ†Œλ“€μ˜ margin-top κ³Ό margin-bottom 이 λ§Œλ‚˜λ©΄μ„œ margin 이 40px μ΄λ˜λŠ” 것이 μ•„λ‹ˆλΌ κ·ΈλŒ€λ‘œ 20px μž„μ„ 확인할 수 μžˆλ‹€. 이것이 λ§ˆμ§„ 쀑볡이닀.


λΆ€λͺ¨ μš”μ†Œμ™€ μžμ‹ μš”μ†Œκ°€ λ§Œλ‚¬μ„ λ•Œ#

<div class="parent"><div class="child"></div></div>
.parent {width: 300px;height: 200px;background: cyan;}.child {width: 100px;height: 100px;background: tomato;margin-top: 50px;}

μœ„μ˜ μ˜ˆμ œμ—μ„œ μžμ‹ μš”μ†Œμ˜ margin-top 이 50px 둜, λΆ€λͺ¨ μš”μ†Œλ‘œλΆ€ν„° 50px 의 margin 이 λ“€μ–΄κ°€κΈΈ κΈ°λŒ€ν–ˆμœΌλ‚˜, λΆ€λͺ¨ μš”μ†Œ μ—­μ‹œ 50px 의 margin 이 λ“€μ–΄κ°€λŠ”κ²ƒμ„ 확인할 수 μžˆλ‹€. 이것은 margin-bottom 일 λ•Œλ„ λ§ˆμ°¬κ°€μ§€μ΄λ‹€.

μ΄λ ‡κ²Œ λΆ€λͺ¨ μš”μ†Œμ˜ margin-top κ³Ό μžμ‹ μš”μ†Œμ˜ margin-top 이 λ§Œλ‚˜μžˆλ‹€λ©΄ μžμ‹μš”μ†Œμ˜ margin-top 이 ν•©μ³μ§€κ²Œ λœλ‹€.

λΆ€λͺ¨ μš”μ†Œμ˜ margin-top κ³Ό μžμ‹ μš”μ†Œμ˜ margin-top 이 λ§Œλ‚˜μ§€ μ•Šλ„λ‘ λΆ€λͺ¨ μš”μ†Œμ— padding: 10px; 을 μΆ”κ°€ν•˜λ©΄ λ§ˆμ§„ 쀑볡이 λ°œμƒν•˜μ§€ μ•ŠλŠ”λ‹€.


λ§ˆμ§„ 쀑볡 계산법#

λ§ˆμ§„ 쀑볡 ν˜„μƒμ΄ λ°œμƒ μ‹œ, 쀑볡 값을 κ³„μ‚°ν•˜λŠ” 방법

μ‘°κ±΄μš”μ†ŒA λ§ˆμ§„μš”μ†ŒB λ§ˆμ§„κ³„μ‚°λ²•μ€‘λ³΅ κ°’
λ‘˜ λ‹€ μ–‘μˆ˜30px10px더 큰 κ°’μœΌλ‘œ 쀑볡30px
λ‘˜ λ‹€ 음수-30px-10px더 μž‘μ€ κ°’μœΌλ‘œ 쀑볡-30px
각각 μ–‘μˆ˜μ™€ 음수-30px10px-30 + 10 = -20-20px

Reference#

패슀트캠퍼슀 - ν”„λ‘ νŠΈμ—”λ“œ 개발 κ°•μ˜ - HTML & CSS, SASS(SCSS) Part by ParkYoungWoong