λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Stylesheet/CSS

[CSS3]CSS λ°•μŠ€ λͺ¨λΈ λ§ˆμŠ€ν„°ν•˜κΈ°: κΈ°μ΄ˆλΆ€ν„° μ‹€μ „κΉŒμ§€

by YJ Dev 2024. 5. 27.
728x90
λ°˜μ‘ν˜•
SMALL

CSS λ°•μŠ€ λͺ¨λΈμ€ κ°€μž₯ κΈ°λ³Έμ μ΄λ©΄μ„œλ„ μ€‘μš”ν•œ κ°œλ… 쀑 ν•˜λ‚˜μž…λ‹ˆλ‹€. HTML μš”μ†ŒλŠ” λͺ¨λ‘ ν•˜λ‚˜μ˜ λ°•μŠ€λ‘œ ν‘œν˜„λ˜λ©°, 이 λ°•μŠ€λŠ” μ½˜ν…μΈ (content), νŒ¨λ”©(padding), ν…Œλ‘λ¦¬(border), λ§ˆμ§„(margin)으둜 κ΅¬μ„±λ©λ‹ˆλ‹€. 이 λ°•μŠ€ λͺ¨λΈμ„ μ΄ν•΄ν•˜λ©΄ μ›Ή νŽ˜μ΄μ§€μ˜ λ ˆμ΄μ•„μ›ƒμ„ 더 효과적으둜 μ„€κ³„ν•˜κ³  관리할 수 μžˆμŠ΅λ‹ˆλ‹€.

css λ°•μŠ€ λͺ¨λΈ

CSS λ°•μŠ€ λͺ¨λΈμ΄λž€?🧐

CSS λ°•μŠ€ λͺ¨λΈμ€ μ›Ή νŽ˜μ΄μ§€μ—μ„œ HTML μš”μ†Œκ°€ μ–΄λ–»κ²Œ 배치되고, 크기가 μ–΄λ–»κ²Œ κ²°μ •λ˜λŠ”μ§€λ₯Ό μ„€λͺ…ν•˜λŠ” κ°œλ…μž…λ‹ˆλ‹€. 각 HTML μš”μ†ŒλŠ” ν•˜λ‚˜μ˜ λ°•μŠ€λ‘œ κ°„μ£Όλ˜λ©°, 이 λ°•μŠ€λŠ” content(μ½˜ν…μΈ ), padding(νŒ¨λ”©), border(ν…Œλ‘λ¦¬), margin(λ§ˆμ§„)의 λ„€ 가지 ꡬ성 μš”μ†Œλ‘œ 이루어져 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ ꡬ성 μš”μ†ŒλŠ” μš”μ†Œμ˜ μ‹œκ°μ  ν‘œν˜„μ„ μ œμ–΄ν•˜λ©°, μ›Ή λ””μžμ΄λ„ˆμ™€ κ°œλ°œμžκ°€ μš”μ†Œλ₯Ό μ •ν™•νžˆ λ°°μΉ˜ν•˜κ³  μŠ€νƒ€μΌλ§ν•˜λŠ” 데 ν•„μˆ˜μ μΈ 역할을 ν•©λ‹ˆλ‹€.

λ°•μŠ€ λͺ¨λΈμ˜ ꡬ성 μš”μ†ŒπŸ“¦

css λ°•μŠ€μ˜ κ΅¬μ„±μš”μ†Œ

1. Content✏️

μ½˜ν…μΈ  μ˜μ—­(Content Area)은 HTML μš”μ†Œμ˜ κ°€μž₯ 쀑심이 λ˜λŠ” λΆ€λΆ„μœΌλ‘œ, ν…μŠ€νŠΈ, 이미지, λΉ„λ””μ˜€ λ“±μ˜ μ‹€μ œ μ½˜ν…μΈ κ°€ ν‘œμ‹œλ˜λŠ” μ˜μ—­μž…λ‹ˆλ‹€. 이 μ˜μ—­μ€ μš”μ†Œμ˜ 본질적인 λ‚΄μš©μ„ ν¬ν•¨ν•˜λ©°, μ›Ή νŽ˜μ΄μ§€μ˜ μ£Όμš” μ •λ³΄λ‚˜ 데이터λ₯Ό λ‹΄κ³  μžˆμŠ΅λ‹ˆλ‹€.


μ½˜ν…μΈ  μ˜μ—­μ˜ ν¬κΈ°λŠ” width와 height μ†μ„±μœΌλ‘œ μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, λ‹€μŒκ³Ό 같이 HTMLκ³Ό CSSλ₯Ό μ‚¬μš©ν•˜μ—¬ μ½˜ν…μΈ  μ˜μ—­μ˜ 크기λ₯Ό 지정할 수 μžˆμŠ΅λ‹ˆλ‹€.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <style>
        .content-box {
            width: 200px;    /* μ½˜ν…μΈ  μ˜μ—­μ˜ λ„ˆλΉ„ */
            height: 100px;   /* μ½˜ν…μΈ  μ˜μ—­μ˜ 높이 */
            background-color: lightblue; /* 배경색 μ„€μ • */
        }
    </style>
    <title>Content Box</title>
</head>
<body>
    <div class="content-box">이곳이 μ½˜ν…μΈ  μ˜μ—­μž…λ‹ˆλ‹€.</div>
</body>
</html>

이 μ˜ˆμ œμ—μ„œ. content-box ν΄λž˜μŠ€κ°€ 적용된 div μš”μ†ŒλŠ” 200ν”½μ…€μ˜ λ„ˆλΉ„μ™€ 100ν”½μ…€μ˜ 높이λ₯Ό 가진 μ½˜ν…μΈ  μ˜μ—­μ„ μ •μ˜ν•©λ‹ˆλ‹€. 이 μ½˜ν…μΈ  μ˜μ—­μ€ ν•΄λ‹Ή μš”μ†Œμ˜ μ‹€μ œ λ‚΄μš©μ„ λ‹΄κ³  있으며, λ°°κ²½μƒ‰μœΌλ‘œ lightblueκ°€ μ„€μ •λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

1-1. box-sizing 속성

box-sizing 속성은 λ°•μŠ€ λͺ¨λΈμ˜ λ™μž‘ 방식을 λ³€κ²½ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. 기본적으둜 HTML μš”μ†Œμ˜ ν¬κΈ°λŠ” μ½˜ν…μΈ  μ˜μ—­λ§Œμ„ κ³ λ €ν•˜μ—¬ κ³„μ‚°λ©λ‹ˆλ‹€. ν•˜μ§€λ§Œ box-sizing 속성을 μ‚¬μš©ν•˜λ©΄ ν…Œλ‘λ¦¬(border)와 μ•ˆμͺ½ μ—¬λ°±(padding)을 ν¬ν•¨ν•˜μ—¬ μš”μ†Œμ˜ 크기λ₯Ό 계산할 수 μžˆμŠ΅λ‹ˆλ‹€.

.element {
    box-sizing: border-box; /* μš”μ†Œμ˜ 전체 크기λ₯Ό μ½˜ν…μΈ , μ•ˆμͺ½ μ—¬λ°±, ν…Œλ‘λ¦¬κΉŒμ§€ ν¬ν•¨ν•˜μ—¬ 계산 */
}


이 섀정을 μ‚¬μš©ν•˜λ©΄ μš”μ†Œμ˜ 크기λ₯Ό μ •ν•  λ•Œ ν…Œλ‘λ¦¬μ™€ μ•ˆμͺ½ 여백이 ν•¨κ»˜ κ³ λ €λ˜λ―€λ‘œ, λ ˆμ΄μ•„μ›ƒμ„ 더 μ‰½κ²Œ 섀계할 수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, μš”μ†Œμ˜ λ„ˆλΉ„λ₯Ό μ •ν•  λ•Œ ν…Œλ‘λ¦¬μ™€ μ•ˆμͺ½ 여백을 λ”°λ‘œ 더해쀄 ν•„μš” 없이 μš”μ†Œμ˜ 전체 크기만 κ³ λ €ν•˜λ©΄ λ©λ‹ˆλ‹€.

.element {
    width: 200px; /* μš”μ†Œμ˜ 전체 λ„ˆλΉ„λ₯Ό κ³ λ €ν•˜μ—¬ μ„€μ • */
    padding: 10px; /* μ•ˆμͺ½ μ—¬λ°± μ„€μ • */
    border: 1px solid black; /* ν…Œλ‘λ¦¬ μ„€μ • */
}


μ΄λ ‡κ²Œ box-sizing 속성을 ν™œμš©ν•˜λ©΄ μš”μ†Œμ˜ 크기λ₯Ό 더 μ§κ΄€μ μœΌλ‘œ 관리할 수 있으며, λ‹€μ–‘ν•œ ν™”λ©΄ 크기와 λΈŒλΌμš°μ €μ—μ„œ μΌκ΄€λœ λ ˆμ΄μ•„μ›ƒμ„ μœ μ§€ν•˜λŠ” 데 도움이 λ©λ‹ˆλ‹€.

1-2. Content μ˜μ—­μ˜ νŠΉμ„±

  1. 크기 쑰절: μ½˜ν…μΈ  μ˜μ—­μ˜ ν¬κΈ°λŠ” width와 height 속성을 μ‚¬μš©ν•˜μ—¬ μ‘°μ ˆν•  수 μžˆμŠ΅λ‹ˆλ‹€. 기본적으둜 μš”μ†Œμ˜ ν¬κΈ°λŠ” κ·Έ μ•ˆμ— ν¬ν•¨λœ μ½˜ν…μΈ μ˜ 크기에 따라 μžλ™μœΌλ‘œ μ‘°μ ˆλ˜μ§€λ§Œ, νŠΉμ • 크기λ₯Ό 지정할 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.
  2. 배경색 및 이미지: μ½˜ν…μΈ  μ˜μ—­μ— 배경색(background-color)μ΄λ‚˜ λ°°κ²½ 이미지(background-image)λ₯Ό μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” μ‹œκ°μ  μš”μ†Œλ₯Ό μΆ”κ°€ν•˜μ—¬ μ›Ή νŽ˜μ΄μ§€λ₯Ό 더 아름닡고 μ§κ΄€μ μœΌλ‘œ λ§Œλ“­λ‹ˆλ‹€.
  3. ν…μŠ€νŠΈ μ •λ ¬: μ½˜ν…μΈ  μ˜μ—­ λ‚΄μ˜ ν…μŠ€νŠΈλŠ” text-align 속성을 μ‚¬μš©ν•˜μ—¬ 쒌츑, 쀑앙, 우츑 정렬이 κ°€λŠ₯ν•©λ‹ˆλ‹€. λ˜ν•œ, line-height 속성을 μ‚¬μš©ν•˜μ—¬ 쀄 간격을 μ‘°μ ˆν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  4. 슀크둀: μ½˜ν…μΈ  μ˜μ—­μ΄ μ„€μ •λœ 크기λ₯Ό μ΄ˆκ³Όν•˜λŠ” 경우, overflow 속성을 μ‚¬μš©ν•˜μ—¬ μŠ€ν¬λ‘€λ°”λ₯Ό μΆ”κ°€ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, overflow: autoλ₯Ό μ„€μ •ν•˜λ©΄ μ½˜ν…μΈ κ°€ λ„˜μΉ  λ•Œ μžλ™μœΌλ‘œ μŠ€ν¬λ‘€λ°”κ°€ λ‚˜νƒ€λ‚©λ‹ˆλ‹€.
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <style>
        .content-box {
            width: 200px;
            height: 100px;
            background-color: lightblue;
            overflow: auto; /* λ„˜μΉ˜λŠ” μ½˜ν…μΈ μ— λŒ€ν•œ μŠ€ν¬λ‘€λ°” μΆ”κ°€ */
        }
    </style>
    <title>Content Box with Scroll</title>
</head>
<body>
    <div class="content-box">
        이곳이 μ½˜ν…μΈ  μ˜μ—­μž…λ‹ˆλ‹€.<br>
        이곳이 μ½˜ν…μΈ  μ˜μ—­μž…λ‹ˆλ‹€.<br>
        이곳이 μ½˜ν…μΈ  μ˜μ—­μž…λ‹ˆλ‹€.<br>
        이곳이 μ½˜ν…μΈ  μ˜μ—­μž…λ‹ˆλ‹€.<br>
    </div>
</body>
</html>


이와 같이 μ½˜ν…μΈ  μ˜μ—­μ€ μ›Ή νŽ˜μ΄μ§€μ˜ 핡심 μš”μ†Œλ₯Ό λ‹΄κ³  있으며, CSS 속성을 톡해 λ‹€μ–‘ν•œ λ°©λ²•μœΌλ‘œ μŠ€νƒ€μΌλ§ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ½˜ν…μΈ  μ˜μ—­μ„ 잘 ν™œμš©ν•˜λ©΄ μ›Ή νŽ˜μ΄μ§€μ˜ 가독성과 미관을 크게 ν–₯상할 수 μžˆμŠ΅λ‹ˆλ‹€.

2. Padding🧸

νŒ¨λ”©(Padding)은 μ½˜ν…μΈ  μ˜μ—­κ³Ό ν…Œλ‘λ¦¬(Border) μ‚¬μ΄μ˜ 여백을 λ§ν•©λ‹ˆλ‹€. μš”μ†Œ λ‚΄λΆ€μ˜ μ½˜ν…μΈ λ₯Ό κ°μ‹ΈλŠ” κ³΅κ°„μœΌλ‘œ, μ½˜ν…μΈ μ™€ ν…Œλ‘λ¦¬ κ°„μ˜ 간격을 μ‘°μ ˆν•©λ‹ˆλ‹€. νŒ¨λ”©μ„ μ‚¬μš©ν•˜λ©΄ μš”μ†Œμ˜ λ‚΄λΆ€ 여백을 μ‘°μ ˆν•˜μ—¬ μ½˜ν…μΈ μ™€ ν…Œλ‘λ¦¬ μ‚¬μ΄μ˜ 곡간을 λŠ˜λ¦¬κ±°λ‚˜ 쀄일 수 μžˆμŠ΅λ‹ˆλ‹€.

2-1. Padding의 νŠΉμ§•

  1. λ‹¨μœ„: νŒ¨λ”©μ€ 보톡 ν”½μ…€(px)μ΄λ‚˜ λ°±λΆ„μœ¨(%)둜 μ§€μ •λ©λ‹ˆλ‹€. μƒλŒ€μ μΈ λ‹¨μœ„μΈ emμ΄λ‚˜ rem도 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  2. λ°°κ²½ 적용: νŒ¨λ”©μ€ μš”μ†Œμ˜ 배경에도 영ν–₯을 μ€λ‹ˆλ‹€. νŒ¨λ”©μ΄ μ„€μ •λ˜μ–΄ 있으면 λ°°κ²½ μƒ‰μƒμ΄λ‚˜ λ°°κ²½ μ΄λ―Έμ§€λŠ” νŒ¨λ”©κΉŒμ§€ μ μš©λ©λ‹ˆλ‹€.
  3. 상속: νŒ¨λ”©μ€ μƒμ†λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 즉, λΆ€λͺ¨ μš”μ†Œμ˜ νŒ¨λ”© 값은 μžμ‹ μš”μ†Œμ—κ²Œ 직접 μƒμ†λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
  4. 단좕 속성: padding 속성을 μ‚¬μš©ν•˜λ©΄ ν•œ μ€„λ‘œ λͺ¨λ“  λ°©ν–₯의 νŒ¨λ”© 값을 μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 단좕 속성을 μ‚¬μš©ν•˜λ©΄ μ½”λ“œμ˜ 가독성을 높일 수 μžˆμŠ΅λ‹ˆλ‹€.

πŸ™Œμ—¬κΈ°μ„œ 잠깐!

단좕 μ†μ„±μ΄λž€?

단좕 속성(Shorthand Property)은 CSSμ—μ„œ μ—¬λŸ¬ 속성을 ν•œ 쀄에 ν•œ λ²ˆμ— μ§€μ •ν•˜λŠ” λ°©λ²•μž…λ‹ˆλ‹€. 이λ₯Ό 톡해 μ½”λ“œλ₯Ό 더 κ°„κ²°ν•˜κ³  가독성 있게 μž‘μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 단좕 속성은 ν•˜λ‚˜μ˜ 속성 κ°’μœΌλ‘œ μ—¬λŸ¬ 속성을 λ™μ‹œμ— μ„€μ •ν•˜λŠ” κ²ƒμœΌλ‘œ, 주둜 νŒ¨λ”©, μ—¬λ°±, ν…Œλ‘λ¦¬, λ°°κ²½ 등을 μ„€μ •ν•  λ•Œ μ‚¬μš©λ©λ‹ˆλ‹€.

2-2. Padding μ„€μ • 방법

κ°œλ³„ κ°’μœΌλ‘œ μ„€μ •ν•˜κΈ°: μœ„μͺ½, 였λ₯Έμͺ½, μ•„λž˜μͺ½, μ™Όμͺ½μ˜ νŒ¨λ”©μ„ μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

.element {
    padding-top: 10px;
    padding-right: 20px;
    padding-bottom: 30px;
    padding-left: 40px;
}


단좕 μ†μ„±μœΌλ‘œ μ„€μ •ν•˜κΈ°
1. ν•œ 개의 κ°’μœΌλ‘œ μ„€μ •ν•˜κΈ°: λͺ¨λ“  λ°©ν–₯에 λ™μΌν•œ νŒ¨λ”© 값을 μ μš©ν•©λ‹ˆλ‹€.

.element {
    padding: 10px; /* λͺ¨λ“  λ°©ν–₯에 10px의 νŒ¨λ”© 적용 */
}


2. 두 개의 κ°’μœΌλ‘œ μ„€μ •ν•˜κΈ°: 첫 번째 값은 μœ„μͺ½κ³Ό μ•„λž˜μͺ½ νŒ¨λ”©μ„, 두 번째 값은 μ™Όμͺ½κ³Ό 였λ₯Έμͺ½ νŒ¨λ”©μ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

.element {
    padding: 10px 20px; /* μœ„μ•„λž˜ 10px, 쒌우 20px의 νŒ¨λ”© 적용 */
}


3. μ„Έ 개의 κ°’μœΌλ‘œ μ„€μ •ν•˜κΈ°
: 첫 번째 값은 μœ„μͺ½ νŒ¨λ”©μ„, 두 번째 값은 μ™Όμͺ½κ³Ό 였λ₯Έμͺ½ νŒ¨λ”©μ„, μ„Έ 번째 값은 μ•„λž˜μͺ½ νŒ¨λ”©μ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

.element {
    padding: 10px 20px 30px; /* μœ„ 10px, 쒌우 20px, μ•„λž˜ 30px의 νŒ¨λ”© 적용 */
}


4. λ„€ 개의 κ°’μœΌλ‘œ μ„€μ •ν•˜κΈ°
: 각 값은 μœ„μͺ½, 였λ₯Έμͺ½, μ•„λž˜μͺ½, μ™Όμͺ½ μˆœμ„œλ‘œ νŒ¨λ”© 값을 λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

.element {
    padding: 10px 20px 30px 40px; /* μœ„ 10px, 였λ₯Έμͺ½ 20px, μ•„λž˜ 30px, μ™Όμͺ½ 40px의 νŒ¨λ”© 적용 */
}

3. BorderπŸ–ŒοΈ

ν…Œλ‘λ¦¬(Border)λŠ” HTML μš”μ†Œμ˜ 외곽을 κ°μ‹ΈλŠ” μ„ μž…λ‹ˆλ‹€. 이 선은 μš”μ†Œμ˜ μ™ΈλΆ€ 경계λ₯Ό ν‘œμ‹œν•˜κ³  μš”μ†Œλ₯Ό μ‹œκ°μ μœΌλ‘œ κ΅¬λ³„ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. ν…Œλ‘λ¦¬λŠ” 주둜 μš”μ†Œμ˜ 외관을 κΎΈλ―ΈλŠ” 데 ν™œμš©λ˜λ©°, μ—¬λŸ¬ μŠ€νƒ€μΌ, λ‘κ»˜, 색상 등을 μ„€μ •ν•˜μ—¬ λ‹€μ–‘ν•œ 효과λ₯Ό 쀄 수 μžˆμŠ΅λ‹ˆλ‹€.

3-1. Border 속성

ν…Œλ‘λ¦¬λŠ” CSS의 border 속성을 μ‚¬μš©ν•˜μ—¬ μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이 속성은 μ„Έ 가지 μ„ΈλΆ€ 속성을 ν¬ν•¨ν•©λ‹ˆλ‹€.
ν…Œλ‘λ¦¬μ˜ μŠ€νƒ€μΌ, λ‘κ»˜, μƒ‰μƒμž…λ‹ˆλ‹€.

.element {
    border: 2px solid black; /* ν…Œλ‘λ¦¬μ˜ μŠ€νƒ€μΌ, λ‘κ»˜, 색상 μ„€μ • */
}

μœ„μ˜ μ½”λ“œμ—μ„œ 2pxλŠ” ν…Œλ‘λ¦¬μ˜ λ‘κ»˜λ₯Ό λ‚˜νƒ€λ‚΄κ³ , solidλŠ” ν…Œλ‘λ¦¬μ˜ μŠ€νƒ€μΌμ„ λ‚˜νƒ€λ‚΄λ©°, black은 ν…Œλ‘λ¦¬μ˜ 색상을 λ‚˜νƒ€λƒ…λ‹ˆλ‹€.


Border μŠ€νƒ€μΌ

ν…Œλ‘λ¦¬μ˜ μŠ€νƒ€μΌμ€ λ‹€μ–‘ν•˜κ²Œ μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 일반적으둜 μ‚¬μš©λ˜λŠ” ν…Œλ‘λ¦¬ μŠ€νƒ€μΌμ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

  • none: ν…Œλ‘λ¦¬ μ—†μ• λŠ” μŠ€νƒ€μΌ
  • solid: μ‹€μ„  μŠ€νƒ€μΌ
  • dashed: 점선 μŠ€νƒ€μΌ
  • dotted: 점 ν…Œλ‘λ¦¬ μŠ€νƒ€μΌ
  • double: 이쀑선 μŠ€νƒ€μΌ
  • groove: μž…μ²΄ νš¨κ³Όκ°€ μžˆλŠ” ν…Œλ‘λ¦¬ μŠ€νƒ€μΌ
  • ridge: μž…μ²΄ νš¨κ³Όκ°€ μžˆλŠ” λ‹€λ₯Έ λ°©ν–₯의 ν…Œλ‘λ¦¬ μŠ€νƒ€μΌ
  • hidden: ν…Œλ‘λ¦¬λ₯Ό μˆ¨κΈ°λŠ” μŠ€νƒ€μΌ
  • inset: μš”μ†Œ 내뢀에 그림자 효과λ₯Ό μ£Όμ–΄ 내렀앉은 λ“―ν•œ ν…Œλ‘λ¦¬λ₯Ό λ§Œλ“¦
  • outset: μš”μ†Œ 외뢀에 그림자 효과λ₯Ό μ£Όμ–΄ νŠ€μ–΄λ‚˜μ˜¨ λ“―ν•œ ν…Œλ‘λ¦¬λ₯Ό λ§Œλ“¦
.element {
    border-style: solid; /* ν…Œλ‘λ¦¬μ˜ μŠ€νƒ€μΌ μ„€μ • */
}


Border λ‘κ»˜

ν…Œλ‘λ¦¬μ˜ λ‘κ»˜λŠ” ν”½μ…€(px) λ‹¨μœ„λ‘œ μ§€μ •λ©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, border-width: 2px;와 같이 μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.


Border 색상

ν…Œλ‘λ¦¬μ˜ 색상은 CSS의 색상 ν‘œν˜„ 방식에 따라 μ§€μ •λ©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, border-color: black;와 같이 μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

.element {
    border-width: 2px; /* ν…Œλ‘λ¦¬μ˜ λ‘κ»˜ μ„€μ • */
    border-color: black; /* ν…Œλ‘λ¦¬μ˜ 색상 μ„€μ • */
}

3-2. Border 속성 μ„€μ •ν•˜κΈ°

μœ„μ˜ Border 속성 μ„Έ 가지 μ„ΈλΆ€ 속성을 ν•¨κ»˜ μ‚¬μš©ν•˜μ—¬ ν…Œλ‘λ¦¬λ₯Ό μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, λ‹€μŒκ³Ό 같이 ν•œ μ€„λ‘œ κ°„κ²°ν•˜κ²Œ ν…Œλ‘λ¦¬λ₯Ό μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

.element {
    border: 2px solid black; /* ν…Œλ‘λ¦¬μ˜ μŠ€νƒ€μΌ, λ‘κ»˜, 색상 μ„€μ • */
}

4. MarginπŸ“

Margin은 HTML μš”μ†Œ μ£Όμœ„μ˜ 곡간을 λ‚˜νƒ€λƒ…λ‹ˆλ‹€. Margin은 μš”μ†Œμ™€ κ·Έ μ£Όλ³€ μš”μ†Œ μ‚¬μ΄μ˜ 간격을 μ‘°μ ˆν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. 이것은 μš”μ†Œλ₯Ό λ‹€λ₯Έ μš”μ†Œλ‘œλΆ€ν„° λ–¨μ–΄λœ¨λ¦¬κ±°λ‚˜ μš”μ†Œ μ£Όμœ„μ˜ 여백을 μ‘°μ •ν•˜λŠ” 데 μœ μš©ν•©λ‹ˆλ‹€. μ†μ„±μ˜ μ‚¬μš© λ°©λ²•μ΄λ‚˜ 속성 κ°’μ˜ 적용 μ›λ¦¬λŠ” paddingκ³Ό λ™μΌν•©λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄, λ‹€μŒμ˜ CSS μ½”λ“œμ—μ„œ margin 속성을 μ‚¬μš©ν•˜μ—¬ μš”μ†Œμ˜ μœ„, 였λ₯Έμͺ½, μ•„λž˜, μ™Όμͺ½μ˜ 여백을 μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

.element {
    margin: 10px; /* λͺ¨λ“  λ°©ν–₯에 λŒ€ν•΄ 10px의 여백을 μ„€μ • */
}


μœ„μ˜ μ½”λ“œμ—μ„œ 10pxλŠ” λͺ¨λ“  λ°©ν–₯(μœ„, 였λ₯Έμͺ½, μ•„λž˜, μ™Όμͺ½)에 λŒ€ν•΄ λ™μΌν•œ 여백을 μ„€μ •ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 각 λ°©ν–₯에 λŒ€ν•΄ λ³„λ„λ‘œ 여백을 지정할 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

.element {
    margin-top: 10px; /* μœ„μͺ½ μ—¬λ°± μ„€μ • */
    margin-right: 20px; /* 였λ₯Έμͺ½ μ—¬λ°± μ„€μ • */
    margin-bottom: 30px; /* μ•„λž˜μͺ½ μ—¬λ°± μ„€μ • */
    margin-left: 40px; /* μ™Όμͺ½ μ—¬λ°± μ„€μ • */
}

4-1. Margin κ²ΉμΉ¨ ν˜„μƒ

Margin Collapse(λ§ˆμ§„ κ²ΉμΉ¨ ν˜„μƒ)은 두 개 μ΄μƒμ˜ μΈμ ‘ν•œ 블둝 μš”μ†Œμ˜ 상단 λ˜λŠ” ν•˜λ‹¨ λ§ˆμ§„μ΄ μ„œλ‘œ κ²Ήμ³μ§€λŠ” ν˜„μƒμ„ λ§ν•©λ‹ˆλ‹€. 이것은 CSS λ°•μŠ€ λͺ¨λΈμ˜ λ™μž‘ 방식 쀑 ν•˜λ‚˜λ‘œ, μ—¬λŸ¬ μš”μ†Œμ˜ λ§ˆμ§„μ΄ κ²°ν•©λ˜μ–΄ ν•˜λ‚˜μ˜ λ§ˆμ§„μœΌλ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€.

λ§ˆμ§„ κ²ΉμΉ¨ ν˜„μƒμ€ λ‹€μŒκ³Ό 같은 μƒν™©μ—μ„œ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  1. μΈμ ‘ν•œ ν˜•μ œ μš”μ†Œμ˜ λ§ˆμ§„ κ²ΉμΉ¨: 두 개의 μΈμ ‘ν•œ ν˜•μ œ μš”μ†Œμ˜ 상단 λ˜λŠ” ν•˜λ‹¨ λ§ˆμ§„μ΄ μ„œλ‘œ κ²Ήμ³μ§€λŠ” κ²½μš°κ°€ μžˆμŠ΅λ‹ˆλ‹€. μ΄λ•Œ 겹친 λ§ˆμ§„ 쀑 더 큰 λ§ˆμ§„μ΄ μ μš©λ©λ‹ˆλ‹€.
  2. λΆ€λͺ¨μ™€ 첫 번째 λ˜λŠ” λ§ˆμ§€λ§‰ μžμ‹ μš”μ†Œμ˜ λ§ˆμ§„ κ²ΉμΉ¨: λΆ€λͺ¨ μš”μ†Œμ˜ 상단 λ˜λŠ” ν•˜λ‹¨ λ§ˆμ§„κ³Ό 첫 번째 λ˜λŠ” λ§ˆμ§€λ§‰ μžμ‹ μš”μ†Œμ˜ λ§ˆμ§„μ΄ κ²ΉμΉ  λ•Œλ„ λ§ˆμ§„ 겹침이 λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λ§ˆμ§„ 겹침은 주둜 μ„Έλ‘œ λ°©ν–₯으둜 λ°œμƒν•˜λ©°, κ°€μž₯ 큰 λ§ˆμ§„μ΄ μ μš©λ©λ‹ˆλ‹€. 이것은 λ ˆμ΄μ•„μ›ƒμ„ μ˜ˆμΈ‘ν•˜κ³  λ””μžμΈν•˜λŠ” 데 영ν–₯을 쀄 수 μžˆμœΌλ―€λ‘œ μ£Όμ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€.

λ§ˆμ§„ 겹침을 λ°©μ§€ν•˜κΈ° μœ„ν•œ λͺ‡ 가지 방법이 μžˆμŠ΅λ‹ˆλ‹€.

  • λΆ€λͺ¨ μš”μ†Œμ— overflow: hidden; μΆ”κ°€: λΆ€λͺ¨ μš”μ†Œμ— overflow: hidden; 속성을 μΆ”κ°€ν•˜μ—¬ λ§ˆμ§„ 겹침을 방지할 수 μžˆμŠ΅λ‹ˆλ‹€.
  • λΆ€λͺ¨ μš”μ†Œμ— padding μΆ”κ°€: λΆ€λͺ¨ μš”μ†Œμ— 상단 λ˜λŠ” ν•˜λ‹¨ νŒ¨λ”©μ„ μΆ”κ°€ν•˜μ—¬ λ§ˆμ§„ 겹침을 방지할 수 μžˆμŠ΅λ‹ˆλ‹€.
  • float 속성 μ‚¬μš©: μš”μ†Œλ₯Ό float μ‹œμΌœμ„œ λ§ˆμ§„ 겹침을 방지할 수 μžˆμŠ΅λ‹ˆλ‹€.

λ§ˆμ§„ 겹침은 CSS λ ˆμ΄μ•„μ›ƒμ„ 섀계할 λ•Œ κ³ λ €ν•΄μ•Ό ν•  μ€‘μš”ν•œ μΈ‘λ©΄ 쀑 ν•˜λ‚˜μž…λ‹ˆλ‹€. 이λ₯Ό 톡해 μ›μΉ˜ μ•ŠλŠ” λ ˆμ΄μ•„μ›ƒ 문제λ₯Ό λ°©μ§€ν•˜κ³  더 λ‚˜μ€ λ””μžμΈμ„ κ΅¬ν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Margin과 Padding의 차이점

Marginκ³Ό Padding은 λ°•μŠ€ λͺ¨λΈμ—μ„œ μš”μ†Œ μ£Όμœ„μ˜ 곡간을 μ‘°μ ˆν•˜λŠ” 데 μ‚¬μš©λ˜μ§€λ§Œ, κ·Έλ“€μ˜ κΈ°λŠ₯κ³Ό 적용 λ°©μ‹μ—λŠ” λͺ‡ 가지 차이가 μžˆμŠ΅λ‹ˆλ‹€.

Padding은 μš”μ†Œμ˜ λ‚΄λΆ€ 곡간을 μ‘°μ ˆν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. 즉, λ‚΄μš©(content)κ³Ό ν…Œλ‘λ¦¬(border) μ‚¬μ΄μ˜ 여백을 μ§€μ •ν•©λ‹ˆλ‹€. Padding은 μš”μ†Œ 내뢀에 여백을 λ§Œλ“€μ–΄μ£Όλ©°, 이 여백은 μš”μ†Œμ˜ λ‚΄μš©κ³Ό ν…Œλ‘λ¦¬ 사이에 λ°°μΉ˜λ©λ‹ˆλ‹€. Padding은 CSS μ†μ„±μœΌλ‘œ padding-top, padding-right, padding-bottom, padding-left와 같이 각 λ°©ν–₯λ³„λ‘œ μ§€μ •λ©λ‹ˆλ‹€.

Margin은 μš”μ†Œμ™€ μ£Όλ³€ μš”μ†Œ μ‚¬μ΄μ˜ 곡간을 μ‘°μ ˆν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. Margin은 μš”μ†Œμ˜ μ™ΈλΆ€ 곡간을 μ§€μ •ν•˜λ©°, μš”μ†Œ μ£Όμœ„μ— μ™ΈλΆ€ 여백을 λ§Œλ“€μ–΄μ€λ‹ˆλ‹€. μ΄λŠ” μΈμ ‘ν•œ μš”μ†Œ μ‚¬μ΄μ˜ 간격을 μ‘°μ ˆν•˜λŠ” 데 μ‚¬μš©λ˜λ©°, μš”μ†Œμ˜ μ™ΈλΆ€ 경계λ₯Ό λ‘˜λŸ¬μ‹Έκ³  μžˆμŠ΅λ‹ˆλ‹€. Margin은 CSS μ†μ„±μœΌλ‘œ margin-top, margin-right, margin-bottom, margin-left와 같이 각 λ°©ν–₯λ³„λ‘œ μ§€μ •λ©λ‹ˆλ‹€.

λ”°λΌμ„œ μš”μ•½ν•˜μžλ©΄, Padding은 μš”μ†Œ λ‚΄λΆ€μ˜ 여백을 μ‘°μ ˆν•˜μ—¬ λ‚΄μš©κ³Ό ν…Œλ‘λ¦¬ μ‚¬μ΄μ˜ 곡간을 λ§Œλ“€κ³ , Margin은 μš”μ†Œμ˜ μ™ΈλΆ€ 곡간을 μ‘°μ ˆν•˜μ—¬ μš”μ†Œμ™€ μ£Όλ³€ μš”μ†Œ μ‚¬μ΄μ˜ 간격을 λ§Œλ“­λ‹ˆλ‹€.

λ°•μŠ€ λͺ¨λΈμ˜ λ™μž‘ λ°©μ‹βš™οΈ

블둝 μš”μ†Œμ™€ 인라인 μš”μ†ŒπŸ§±

  • 블둝 μš”μ†Œ: 항상 μƒˆλ‘œμš΄ μ€„μ—μ„œ μ‹œμž‘ν•˜λ©°, κ°€λ‘œ λ°©ν–₯으둜 μ΅œλŒ€ λ„ˆλΉ„λ₯Ό μ°¨μ§€ν•©λ‹ˆλ‹€. 블둝 μš”μ†Œμ—λŠ”<div>,<p>,<h1>등이 μžˆμŠ΅λ‹ˆλ‹€.
  • 인라인 μš”μ†Œ: λ™μΌν•œ 쀄에 λ‚˜λž€νžˆ λ°°μΉ˜λ©λ‹ˆλ‹€. 인라인 μš”μ†Œμ—λŠ” <span>, <a>, <strong> 등이 ν¬ν•¨λ©λ‹ˆλ‹€.

블둝 μš”μ†Œμ™€ 인라인 μš”μ†Œμ˜ λŒ€ν‘œμ μΈ μ˜ˆμ‹œμΈ div와 span νƒœκ·Έμ— κ΄€ν•œ λ‚΄μš©μ€ μ•„λž˜ ν¬μŠ€νŒ…μ„ μ°Έκ³ ν•΄ μ£Όμ„Έμš”πŸ˜

" "

[HTML5]HTML 곡간 λΆ„ν•  νƒœκ·Έ spanκ³Ό div νƒœκ·Έ

μ›Ή νŽ˜μ΄μ§€μ˜ λ ˆμ΄μ•„μ›ƒμ„ κ΅¬μ„±ν•˜κ³  λ‚΄μš©μ„ κ·Έλ£Ήν™”ν•˜λŠ” λ°λŠ” HTML의 span νƒœκ·Έμ™€ div νƒœκ·Έκ°€ μ‚¬μš©λ©λ‹ˆλ‹€. spanκ³Ό div νƒœκ·Έμ˜ ν™œμš©λ²•κ³Ό 차이점에 λŒ€ν•΄ μžμ„Ένžˆ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.≣ λͺ©μ°¨span νƒœκ·ΈπŸŽdiv νƒœκ·Έ

creativevista.tistory.com

인라인 블둝 μš”μ†ŒπŸ“‘

인라인 블둝 μš”μ†ŒλŠ” 인라인 μš”μ†Œμ²˜λŸΌ ν•œ 쀄에 λ‚˜λž€νžˆ λ°°μΉ˜λ˜μ§€λ§Œ, 블둝 μš”μ†Œμ²˜λŸΌ width, height, padding, margin 등을 κ°€μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” λ‚΄λΉ„κ²Œμ΄μ…˜ 메뉴, λ²„νŠΌ κ·Έλ£Ή λ“±μ—μ„œ μœ μš©ν•˜κ²Œ μ‚¬μš©λ©λ‹ˆλ‹€.

<style>
  .inline-block {
    display: inline-block;
    width: 100px;
    height: 100px;
    padding: 10px;
    border: 1px solid #000;
    margin: 5px;
  }
</style>
<div class="inline-block">Box 1</div>
<div class="inline-block">Box 2</div>

블둝, 인라인, 인라인 블둝 μš”μ†Œμ˜ 차이점⭐

νŠΉμ„± 블둝 인라인 인라인 λΈ”λŸ­
ν‘œν˜„ μ½˜ν…μΈ  μ˜μ—­μ„ κ°€λ‘œ/ μ„Έλ‘œλ‘œ ν™•μž₯ν•˜λŠ” λ°•μŠ€ ν˜•νƒœ μ½˜ν…μΈ  μ˜μ—­μ„ κ°€λ‘œλ‘œλ§Œ ν™•μž₯ν•˜λŠ” μš”μ†Œ μ½˜ν…μΈ  μ˜μ—­μ„ κ°€λ‘œ/μ„Έλ‘œλ‘œ ν™•μž₯ν•˜λŠ” λ°•μŠ€ ν˜•νƒœμ™€ κ°™μ§€λ§Œ, 인라인 μš”μ†Œμ²˜λŸΌ μ€„λ°”κΏˆ 없이 배치됨
λ ˆμ΄μ•„μ›ƒ 배치 ν•œ 쀄에 ν•˜λ‚˜μ˜ μš”μ†Œλ§Œ μœ„μΉ˜ ν•œ 쀄에 μ—¬λŸ¬ μš”μ†Œκ°€ λ‚˜λž€νžˆ μœ„μΉ˜ ν•œ 쀄에 μ—¬λŸ¬ μš”μ†Œκ°€ λ‚˜λž€νžˆ μœ„μΉ˜ν•˜λ˜, ν•„μš”μ‹œ μ€„λ°”κΏˆμ΄ 일어남
λ„ˆλΉ„μ™€ 높이 width와 height μ†μ„±μœΌλ‘œ 쑰절 width와 height 속성 적용 λΆˆκ°€ width와 height μ†μ„±μœΌλ‘œ 쑰절
λ§ˆμ§„, νŒ¨λ”©μ˜ 영ν–₯ μƒν•˜μ’Œμš°μ˜ λ§ˆμ§„κ³Ό νŒ¨λ”©μ΄ 적용 쒌우의 λ§ˆμ§„κ³Ό νŒ¨λ”©λ§Œ 적용 μƒν•˜μ’Œμš°μ˜ λ§ˆμ§„κ³Ό νŒ¨λ”©μ΄ 적용
μ˜ˆμ‹œ <div>, <p>, <header>, <footer> λ“± <span>, <a>, <em>, <strong> λ“± <img>, <button>, <input type="button"> λ“±

μƒμž 크기 κ³„μ‚°πŸ“

λ°•μŠ€ λͺ¨λΈμ—μ„œ μš”μ†Œμ˜ 전체 ν¬κΈ°λŠ” λ‹€μŒκ³Ό 같이 κ³„μ‚°λ©λ‹ˆλ‹€.

총 λ„ˆλΉ„ = width+padding-left+padding-right+border-left-width+border-right-width+margin-left+margin-right

총 높이 = height+padding-top+padding-bottom+border-top-width+border-bottom-width+margin-top+margin-bottom


κ·ΈλŸ¬λ‚˜ content μ˜μ—­μ˜ λ„ˆλΉ„μ™€ 높이λ₯Ό κ³„μ‚°ν•˜λŠ” λΆˆνŽΈν•¨μ„ 쀄이기 μœ„ν•΄ μœ„μ—μ„œ μ–ΈκΈ‰ν•œ box-sizing 속성을 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λ””μŠ€ν”Œλ ˆμ΄ 속성πŸ–₯️

display 속성은 HTML μš”μ†Œμ˜ λ°•μŠ€ λͺ¨λΈμ„ μ–΄λ–»κ²Œ λ Œλ”λ§ 할지λ₯Ό κ²°μ •ν•˜λŠ” CSS μ†μ„±μž…λ‹ˆλ‹€. 이 속성을 톡해 μš”μ†Œκ°€ 블둝, 인라인, 인라인 블둝 λ“±μœΌλ‘œ λ Œλ”λ§ 될지 μ •μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ£Όμš” diplay κ°’πŸ“Š

  • block: 블둝 레벨 μš”μ†Œλ‘œ λ Œλ”λ§, 항상 μƒˆλ‘œμš΄ μ€„μ—μ„œ μ‹œμž‘.
  • inline: 인라인 μš”μ†Œλ‘œ λ Œλ”λ§, μ½˜ν…μΈ μ™€ λ™μΌν•œ 쀄에 배치.
  • inline-block: 인라인 μš”μ†Œμ²˜λŸΌ ν•œ 쀄에 λ°°μΉ˜λ˜μ§€λ§Œ, 블둝 μš”μ†Œμ²˜λŸΌ 크기와 νŒ¨λ”©μ„ 가짐.
  • none: μš”μ†Œλ₯Ό λ Œλ”λ§ ν•˜μ§€ μ•ŠμŒ.

λ””μŠ€ν”Œλ ˆμ΄ μ†μ„±μ˜ ν™œμš© πŸ› οΈ

  • λ‹€μ–‘ν•œ display 속성을 ν™œμš©ν•˜μ—¬ λ ˆμ΄μ•„μ›ƒμ„ ꡬ성할 수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, λ‚΄λΉ„κ²Œμ΄μ…˜ λ°”λ₯Ό 인라인 블둝 μš”μ†Œλ‘œ κ΅¬μ„±ν•˜κ±°λ‚˜, νŠΉμ • μš”μ†Œλ₯Ό 숨기기 μœ„ν•΄ display: none을 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
<style>
  .block {
    display: block;
    width: 100%;
    height: 50px;
    background-color: lightblue;
  }
  .inline {
    display: inline;
    background-color: lightgreen;
  }
  .none {
    display: none;
  }
</style>
<div class="block">Block Element</div>
<span class="inline">Inline Element</span>
<div class="none">This will not be displayed</div>

디버깅과 문제 ν•΄κ²°πŸ› οΈ

μ›Ή κ°œλ°œμ—μ„œ CSS λ°•μŠ€ λͺ¨λΈμ„ μ΄ν•΄ν•˜λŠ” κ²ƒλ§ŒνΌ μ€‘μš”ν•œ 것은 문제λ₯Ό ν•΄κ²°ν•˜κ³  μ˜¬λ°”λ₯΄κ²Œ λ””λ²„κΉ…ν•˜λŠ” 방법을 μ•„λŠ” κ²ƒμž…λ‹ˆλ‹€. λΈŒλΌμš°μ € 개발자 도ꡬλ₯Ό ν™œμš©ν•˜λ©΄ λ°•μŠ€ λͺ¨λΈκ³Ό κ΄€λ ¨λœ 문제λ₯Ό μ‰½κ²Œ νŒŒμ•…ν•˜κ³  μˆ˜μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이 μ„Ήμ…˜μ—μ„œλŠ” λΈŒλΌμš°μ € 개발자 도ꡬ μ‚¬μš©λ²•κ³Ό 자주 λ°œμƒν•˜λŠ” λ¬Έμ œμ™€ ν•΄κ²° 방법을 λ‹€λ£Ήλ‹ˆλ‹€.

λΈŒλΌμš°μ € 개발자 도ꡬ μ‚¬μš©λ²•πŸ”§

λΈŒλΌμš°μ € 개발자 λ„κ΅¬λŠ” μ›Ή κ°œλ°œμžλ“€μ΄ μ›Ή νŽ˜μ΄μ§€μ˜ ꡬ쑰, μŠ€νƒ€μΌ, λ™μž‘μ„ μ‹€μ‹œκ°„μœΌλ‘œ κ²€μ‚¬ν•˜κ³  μˆ˜μ •ν•  수 μžˆλ„λ‘ λ•λŠ” κ°•λ ₯ν•œ λ„κ΅¬μž…λ‹ˆλ‹€. λŒ€λΆ€λΆ„μ˜ ν˜„λŒ€ λΈŒλΌμš°μ €μ—λŠ” μ΄λŸ¬ν•œ 도ꡬ가 λ‚΄μž₯λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. μ—¬κΈ°μ„œλŠ” κ°€μž₯ 널리 μ‚¬μš©λ˜λŠ” Chrome 개발자 도ꡬλ₯Ό μ€‘μ‹¬μœΌλ‘œ μ„€λͺ…ν•˜κ² μŠ΅λ‹ˆλ‹€.

1. 개발자 도ꡬ μ—΄κΈ°

  • 단좕킀 μ‚¬μš©: Windows/Linuxμ—μ„œλŠ” Ctrl+Shift+I, λ˜λŠ” F12 Macμ—μ„œλŠ” Cmd+Opt+Iλ₯Ό λˆ„λ₯΄λ©΄ 개발자 도ꡬ가 μ—΄λ¦½λ‹ˆλ‹€.
  • μ›Ή νŽ˜μ΄μ§€μ—μ„œ 마우슀 우츑 클릭 : μ›Ή νŽ˜μ΄μ§€μ—μ„œ 마우슀λ₯Ό 우츑으둜 ν΄λ¦­ν•©λ‹ˆλ‹€. 클릭 ν›„ 검사λ₯Ό ν΄λ¦­ν•˜λ©΄ 개발자 도ꡬ가 μ—΄λ¦½λ‹ˆλ‹€.

2. μš”μ†Œ 검사

  • Elements νŒ¨λ„: Elements νŒ¨λ„μ„ μ‚¬μš©ν•˜λ©΄ HTML ꡬ쑰와 CSS μŠ€νƒ€μΌμ„ μ‹€μ‹œκ°„μœΌλ‘œ ν™•μΈν•˜κ³  μˆ˜μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ°•μŠ€ λͺ¨λΈμ˜ 각 ꡬ성 μš”μ†Œ (content, padding, border, margin)κ°€ μ‹œκ°μ μœΌλ‘œ ν‘œμ‹œλ©λ‹ˆλ‹€.
    • νŠΉμ • μš”μ†Œλ₯Ό ν΄λ¦­ν•˜λ©΄ ν•΄λ‹Ή μš”μ†Œμ˜ CSS μŠ€νƒ€μΌκ³Ό λ°•μŠ€ λͺ¨λΈμ΄ μƒμ„Ένžˆ ν‘œμ‹œλ©λ‹ˆλ‹€.
    • μš”μ†Œ 선택 도ꡬ: HTML μš”μ†Œλ₯Ό μ„ νƒν•˜κ³  ν•΄λ‹Ή μš”μ†Œμ— λŒ€ν•œ 정보λ₯Ό ν™•μΈν•˜λŠ” κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€.
    • Styles μ„Ήμ…˜: μš”μ†Œμ— 적용된 CSS μŠ€νƒ€μΌμ„ ν™•μΈν•˜κ³  μˆ˜μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
    • Computed μ„Ήμ…˜: μš”μ†Œμ˜ μ‹€μ œ 크기와 μŠ€νƒ€μΌμ„ κ³„μ‚°ν•˜μ—¬ λ³΄μ—¬μ€λ‹ˆλ‹€.

3. μ‹€μ‹œκ°„ μˆ˜μ •

  • Elements νŒ¨λ„μ—μ„œ μŠ€νƒ€μΌμ„ μˆ˜μ •ν•˜λ©΄ νŽ˜μ΄μ§€μ— μ¦‰μ‹œ λ°˜μ˜λ©λ‹ˆλ‹€. μ΄λŠ” CSS 문제λ₯Ό λΉ λ₯΄κ²Œ ν…ŒμŠ€νŠΈν•˜κ³  ν•΄κ²°ν•˜λŠ” 데 μœ μš©ν•©λ‹ˆλ‹€.
    • 예λ₯Ό λ“€μ–΄, νŒ¨λ”©μ΄λ‚˜ λ§ˆμ§„ 값을 λ³€κ²½ν•˜λ©΄ μš”μ†Œμ˜ 크기와 μœ„μΉ˜κ°€ μ‹€μ‹œκ°„μœΌλ‘œ μ—…λ°μ΄νŠΈλ©λ‹ˆλ‹€.

자주 λ°œμƒν•˜λŠ” λ¬Έμ œμ™€ ν•΄κ²° λ°©λ²•πŸ§©

1. μš”μ†Œ κ²ΉμΉ¨ 문제

  • 문제: 두 μš”μ†Œκ°€ 겹쳐져 λ³΄μ΄λŠ” 경우.
  • 원인: 잘λͺ»λœ λ§ˆμ§„, νŒ¨λ”© λ˜λŠ” 포지셔닝 μ„€μ •.
  • ν•΄κ²° 방법: 개발자 λ„κ΅¬μ—μ„œ 각 μš”μ†Œμ˜ λ°•μŠ€ λͺ¨λΈμ„ ν™•μΈν•˜κ³ , 겹침이 λ°œμƒν•˜λŠ” 원인을 νŒŒμ•…ν•©λ‹ˆλ‹€. λ§ˆμ§„μ΄λ‚˜ νŒ¨λ”© 값을 μ‘°μ •ν•˜κ±°λ‚˜, position 속성을 ν™•μΈν•©λ‹ˆλ‹€.

2. 예기치 μ•Šμ€ μ—¬λ°±

  • 문제: μš”μ†Œ 주변에 μ˜ˆμƒμΉ˜ λͺ»ν•œ 여백이 μƒκΈ°λŠ” 경우.
  • 원인: κΈ°λ³Έ μŠ€νƒ€μΌμ‹œνŠΈ (user agent stylesheet)μ—μ„œ μ„€μ •λœ λ§ˆμ§„μ΄λ‚˜ νŒ¨λ”©.
  • ν•΄κ²° 방법: 개발자 λ„κ΅¬μ—μ„œ μš”μ†Œλ₯Ό μ„ νƒν•˜κ³ , 적용된 μŠ€νƒ€μΌμ„ ν™•μΈν•©λ‹ˆλ‹€. λΆˆν•„μš”ν•œ 여백을 μ œκ±°ν•˜κΈ° μœ„ν•΄ κΈ°λ³Έ λ§ˆμ§„κ³Ό νŒ¨λ”©μ„ μž¬μ„€μ •ν•©λ‹ˆλ‹€.
* {
  margin: 0;
  padding: 0;
}

3. μš”μ†Œκ°€ 화면을 λ²—μ–΄λ‚˜λŠ” 문제

  • 문제: μš”μ†Œκ°€ ν™”λ©΄ λ°–μœΌλ‘œ λ²—μ–΄λ‚˜κ±°λ‚˜ 슀크둀이 λ°œμƒν•˜λŠ” 경우.
  • 원인: μš”μ†Œμ˜ 크기가 λΆ€λͺ¨ μ»¨ν…Œμ΄λ„ˆμ˜ 크기λ₯Ό 초과.
  • ν•΄κ²° 방법: λΆ€λͺ¨ μš”μ†Œμ˜ 크기와 μžμ‹ μš”μ†Œμ˜ 크기λ₯Ό μ‘°μ •ν•©λ‹ˆλ‹€. ν•„μš”μ— 따라 overflow 속성을 μ‚¬μš©ν•˜μ—¬ μŠ€ν¬λ‘€μ„ μ œμ–΄ν•©λ‹ˆλ‹€.
.container {
  overflow: hidden;
}

4. λ ˆμ΄μ•„μ›ƒ λΆ•κ΄΄ 문제

  • 문제: ν•œ μš”μ†Œμ˜ 크기 λ³€ν™”λ‘œ 인해 전체 λ ˆμ΄μ•„μ›ƒμ΄ λΆ•κ΄΄λ˜λŠ” 경우.
  • 원인: ν”Œλ‘œνŒ… μš”μ†Œλ‚˜ 잘λͺ»λœ λ°•μŠ€ 크기 계산.
  • ν•΄κ²° 방법: clear 속성을 μ‚¬μš©ν•˜μ—¬ ν”Œλ‘œνŒ… μš”μ†Œλ₯Ό μ •λ¦¬ν•˜κ±°λ‚˜, box-sizing 속성을 μ‚¬μš©ν•˜μ—¬ λ°•μŠ€ λͺ¨λΈ 계산 방식을 λ³€κ²½ν•©λ‹ˆλ‹€.
.box {
  box-sizing: border-box;
}

이와 같은 λ°©λ²•μœΌλ‘œ λΈŒλΌμš°μ € 개발자 도ꡬλ₯Ό ν™œμš©ν•˜μ—¬ CSS λ°•μŠ€ λͺ¨λΈκ³Ό κ΄€λ ¨λœ 문제λ₯Ό 효과적으둜 ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

핡심 λ‚΄μš©πŸ‘€

css λ°•μŠ€ λͺ¨λΈ
css λ°•μŠ€ λͺ¨λΈ

728x90
λ°˜μ‘ν˜•
LIST