πŸ”₯base.html 큰 ν‹€ 뢄석

HY_1023Β·2026λ…„ 3μ›” 19일

base.html 큰 ν‹€ 뢄석


1. 전체 ꡬ쑰 ν•œλˆˆμ—

base.html
β”‚
β”œβ”€β”€ head μ˜μ—­        ← λΈŒλΌμš°μ € μ„€μ • (λˆˆμ— μ•ˆ λ³΄μž„)
β”‚
└── body μ˜μ—­        ← μ‹€μ œ ν™”λ©΄
        β”‚
        β”œβ”€β”€ header   ← 상단 λ„€λΉ„κ²Œμ΄μ…˜
        β”œβ”€β”€ main     ← νŽ˜μ΄μ§€λ§ˆλ‹€ λ‹€λ₯Έ λ‚΄μš© (핡심)
        └── footer   ← ν•˜λ‹¨ μ„€λͺ…

2. head μ˜μ—­ (λˆˆμ— μ•ˆ λ³΄μ΄λŠ” μ„€μ •)

<head>
    charset="UTF-8"          <!-- ν•œκΈ€ 깨짐 λ°©μ§€ -->
    name="viewport"          <!-- λͺ¨λ°”일 ν™”λ©΄ λŒ€μ‘ -->

    {% block title %}        <!-- νƒ­ 제λͺ© (μžμ‹μ΄ μ±„μ›Œλ„£μŒ) -->
        κ³΅λΆ€μ‹œκ°„ 기둝기
    {% endblock %}

    Google Fonts (Pretendard) <!-- 폰트 뢈러였기 -->
    style.css                 <!-- 전체 λ””μžμΈ 적용 -->
</head>

3. body μ˜μ—­ (λˆˆμ— λ³΄μ΄λŠ” ν™”λ©΄)

β‘  header β€” λͺ¨λ“  νŽ˜μ΄μ§€ 곡톡 상단

<header>
    <a href="{% url 'study:list' %}">Study Tracker</a>  <!-- 둜고 (ν΄λ¦­ν•˜λ©΄ ν™ˆ) -->
    <nav>
        <a href="{% url 'study:list' %}">ν™ˆ</a>          <!-- λ„€λΉ„κ²Œμ΄μ…˜ -->
    </nav>
</header>
  • μ–΄λŠ νŽ˜μ΄μ§€λ₯Ό 가도 항상 κ³ μ •μœΌλ‘œ λ³΄μ΄λŠ” 상단 λ°”

β‘‘ main β€” νŽ˜μ΄μ§€λ§ˆλ‹€ λ‹¬λΌμ§€λŠ” 핡심 μ˜μ—­

<main>
    {% block content %}{% endblock %}  <!-- μžμ‹ 파일이 μ±„μ›Œλ„£λŠ” 곡간 -->
</main>
  • 이 ꡬ멍 ν•˜λ‚˜λ‘œ λͺ¨λ“  νŽ˜μ΄μ§€ λ‚΄μš©μ΄ λ°”λ€œ
  • study_list.html, study_form.html, study_detail.html 이 μ—¬κΈ°λ₯Ό 채움

β‘’ footer β€” λͺ¨λ“  νŽ˜μ΄μ§€ 곡톡 ν•˜λ‹¨

<footer>
    <p>κΎΈμ€€ν•œ 기둝이 κ²°κ΅­ 큰 μ„±μž₯을 λ§Œλ“­λ‹ˆλ‹€.</p>
    <p>Django λ°˜λ³΅ν›ˆλ ¨ 1 - κ³΅λΆ€μ‹œκ°„ 기둝기</p>
</footer>
  • μ–΄λŠ νŽ˜μ΄μ§€λ₯Ό 가도 항상 κ³ μ •μœΌλ‘œ λ³΄μ΄λŠ” ν•˜λ‹¨

4. base.html의 핡심 μ—­ν• 

μžμ‹ νŒŒμΌλ“€ (study_list, study_form, study_detail)
        ↓
{% extends 'base.html' %}  ← "λ‚˜ base μ“Έκ²Œ"
        ↓
{% block content %}        ← "main ꡬ멍만 λ‚΄κ°€ μ±„μšΈκ²Œ"
        ↓
header, footerλŠ” base.html이 μžλ™μœΌλ‘œ λΆ™μ—¬μ€Œ
뢀뢄관리 주체변경 μ—¬λΆ€
headerbase.htmlλͺ¨λ“  νŽ˜μ΄μ§€ 동일
contentμžμ‹ νŒŒμΌνŽ˜μ΄μ§€λ§ˆλ‹€ 닀름
footerbase.htmlλͺ¨λ“  νŽ˜μ΄μ§€ 동일

ν•œμ€„ 정리

base.html = 곡톡 λ ˆμ΄μ•„μ›ƒ ν‹€
헀더/ν‘Έν„°λŠ” κ³ μ •, {% block content %} ꡬ멍만 μžμ‹ 파일이 μ±„μ›Œλ„£λŠ” ꡬ쑰


{% load static %}
<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>{% block title %}κ³΅λΆ€μ‹œκ°„ 기둝기{% endblock %}</title>
  <link rel="preconnect" href="https://fonts.googleapis.com">
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  <link href="https://fonts.googleapis.com/css2?family=Pretendard:wght@400;500;600;700;800&display=swap" rel="stylesheet">
  <link rel="stylesheet" href="{% static 'css/style.css' %}">
</head>
<body>
  <div class="app-shell">
    <header class="site-header">
      <div class="header-inner container">
        <a href="{% url 'study:list' %}" class="brand">Study Tracker</a>
        <nav class="main-nav">
          <a href="{% url 'study:list' %}">ν™ˆ</a>
        </nav>
      </div>
    </header>
 
    <main class="site-main">
      {% block content %}{% endblock %}
    </main>
 
    <footer class="site-footer">
      <div class="container footer-inner">
        <p>κΎΈμ€€ν•œ 기둝이 κ²°κ΅­ 큰 μ„±μž₯을 λ§Œλ“­λ‹ˆλ‹€.</p>
        <p class="footer-sub">Django λ°˜λ³΅ν›ˆλ ¨ 1 - κ³΅λΆ€μ‹œκ°„ 기둝기</p>
      </div>
    </footer>
  </div>
</body>
</html>

detail.html

## HTML ν…œν”Œλ¦Ώ 큰 κ·Έλ¦Ό 뢄석

---

### 1. 상속 ꡬ쑰

```html
{% extends 'base.html' %}
  • base.html의 곡톡 λ ˆμ΄μ•„μ›ƒμ„ κ·ΈλŒ€λ‘œ κ°€μ Έμ˜€κ³ 
  • 이 νŒŒμΌμ€ λ‹€λ₯Έ λΆ€λΆ„λ§Œ μ±„μ›Œλ„£λŠ” μ—­ν• 

2. block 2개

{% block title %}
    {{ study.title }} | κ³΅λΆ€μ‹œκ°„ 기둝기
{% endblock %}

{% block content %}
    ... μ‹€μ œ λ‚΄μš© ...
{% endblock %}
blockμ—­ν• 
titleλΈŒλΌμš°μ € νƒ­ 제λͺ©
content화면에 λ³΄μ΄λŠ” λ‚΄μš© 전체

3. content μ•ˆ ꡬ쑰

{% block content %}
    β”‚
    β”œβ”€β”€ section.hero-card     ← 상단 μ†Œκ°œ μ˜μ—­
    β”‚
    └── section.detail-card   ← 상세 λ‚΄μš© μ˜μ—­
            β”‚
            β”œβ”€β”€ λ°°μ§€λ“€ (μΉ΄ν…Œκ³ λ¦¬, λ‚ μ§œ, μ‹œκ°„)
            β”œβ”€β”€ ν•™μŠ΅ λ©”λͺ¨
            β”œβ”€β”€ 기둝 정보 (생성일, μˆ˜μ •μΌ)
            └── λͺ©λ‘μœΌλ‘œ λ²„νŠΌ

4. hero-card (μ†Œκ°œ μ˜μ—­)

<section class="hero-card">
    <span>Study Detail</span>       <!-- μž‘μ€ 라벨 -->
    <h1>{{ study.title }}</h1>      <!-- 곡뢀 제λͺ© (DBμ—μ„œ κ°€μ Έμ˜΄) -->
    <p>κΈ°λ‘ν•œ 곡뢀 λ‚΄μš©μ„...</p>     <!-- μ„€λͺ…κΈ€ -->
</section>
  • {{ study.title }} = views.pyμ—μ„œ λ„˜κ²¨μ€€ study 객체의 제λͺ©

5. detail-card (핡심 λ‚΄μš© μ˜μ—­)

β‘  λ°°μ§€ 묢음

<div class="record-meta">
    {{ study.get_category_display }}  <!-- μΉ΄ν…Œκ³ λ¦¬ 이름 -->
    {{ study.study_date }}            <!-- 곡뢀 λ‚ μ§œ -->
    {{ study.hours }}μ‹œκ°„ {{ study.minutes }}λΆ„  <!-- 곡뢀 μ‹œκ°„ -->
    {{ study.total_minutes }}λΆ„       <!-- 총 λΆ„ -->
</div>
  • ν•œλˆˆμ— λ³Ό 수 μžˆλŠ” μš”μ•½ 정보듀을 λ°°μ§€λ‘œ ν‘œμ‹œ

β‘‘ ν•™μŠ΅ λ©”λͺ¨

{% if study.memo %}
    {{ study.memo|linebreaksbr }}  <!-- λ©”λͺ¨ 있으면 좜λ ₯ -->
{% else %}
    μž‘μ„±λœ λ©”λͺ¨κ°€ μ—†μŠ΅λ‹ˆλ‹€.         <!-- μ—†μœΌλ©΄ λŒ€μ²΄ ν…μŠ€νŠΈ -->
{% endif %}
  • |linebreaksbr = λ©”λͺ¨μ—μ„œ μ€„λ°”κΏˆμ„ <br>νƒœκ·Έλ‘œ λ³€ν™˜ν•΄μ£ΌλŠ” ν•„ν„°

β‘’ 기둝 정보

<p>생성일: {{ study.created_at }}</p>
<p>μˆ˜μ •μΌ: {{ study.updated_at }}</p>
  • μ–Έμ œ 처음 μž‘μ„±ν–ˆκ³  μ–Έμ œ λ§ˆμ§€λ§‰μœΌλ‘œ μˆ˜μ •ν–ˆλŠ”μ§€

β‘£ λ²„νŠΌ

<a href="{% url 'study:list' %}">λͺ©λ‘μœΌλ‘œ</a>
  • 상세 νŽ˜μ΄μ§€μ—μ„œ λͺ©λ‘ νŽ˜μ΄μ§€λ‘œ λŒμ•„κ°€λŠ” λ²„νŠΌ

전체 흐름 ν•œμ€„ μš”μ•½

## HTML ν…œν”Œλ¦Ώ 큰 κ·Έλ¦Ό 뢄석

---

### 1. 상속 ꡬ쑰

```html
{% extends 'base.html' %}
  • base.html의 곡톡 λ ˆμ΄μ•„μ›ƒμ„ κ·ΈλŒ€λ‘œ κ°€μ Έμ˜€κ³ 
  • 이 νŒŒμΌμ€ λ‹€λ₯Έ λΆ€λΆ„λ§Œ μ±„μ›Œλ„£λŠ” μ—­ν• 

2. block 2개

{% block title %}
    {{ study.title }} | κ³΅λΆ€μ‹œκ°„ 기둝기
{% endblock %}

{% block content %}
    ... μ‹€μ œ λ‚΄μš© ...
{% endblock %}
blockμ—­ν• 
titleλΈŒλΌμš°μ € νƒ­ 제λͺ©
content화면에 λ³΄μ΄λŠ” λ‚΄μš© 전체

3. content μ•ˆ ꡬ쑰

{% block content %}
    β”‚
    β”œβ”€β”€ section.hero-card     ← 상단 μ†Œκ°œ μ˜μ—­
    β”‚
    └── section.detail-card   ← 상세 λ‚΄μš© μ˜μ—­
            β”‚
            β”œβ”€β”€ λ°°μ§€λ“€ (μΉ΄ν…Œκ³ λ¦¬, λ‚ μ§œ, μ‹œκ°„)
            β”œβ”€β”€ ν•™μŠ΅ λ©”λͺ¨
            β”œβ”€β”€ 기둝 정보 (생성일, μˆ˜μ •μΌ)
            └── λͺ©λ‘μœΌλ‘œ λ²„νŠΌ

4. hero-card (μ†Œκ°œ μ˜μ—­)

<section class="hero-card">
    <span>Study Detail</span>       <!-- μž‘μ€ 라벨 -->
    <h1>{{ study.title }}</h1>      <!-- 곡뢀 제λͺ© (DBμ—μ„œ κ°€μ Έμ˜΄) -->
    <p>κΈ°λ‘ν•œ 곡뢀 λ‚΄μš©μ„...</p>     <!-- μ„€λͺ…κΈ€ -->
</section>
  • {{ study.title }} = views.pyμ—μ„œ λ„˜κ²¨μ€€ study 객체의 제λͺ©

5. detail-card (핡심 λ‚΄μš© μ˜μ—­)

β‘  λ°°μ§€ 묢음

<div class="record-meta">
    {{ study.get_category_display }}  <!-- μΉ΄ν…Œκ³ λ¦¬ 이름 -->
    {{ study.study_date }}            <!-- 곡뢀 λ‚ μ§œ -->
    {{ study.hours }}μ‹œκ°„ {{ study.minutes }}λΆ„  <!-- 곡뢀 μ‹œκ°„ -->
    {{ study.total_minutes }}λΆ„       <!-- 총 λΆ„ -->
</div>
  • ν•œλˆˆμ— λ³Ό 수 μžˆλŠ” μš”μ•½ 정보듀을 λ°°μ§€λ‘œ ν‘œμ‹œ

β‘‘ ν•™μŠ΅ λ©”λͺ¨

{% if study.memo %}
    {{ study.memo|linebreaksbr }}  <!-- λ©”λͺ¨ 있으면 좜λ ₯ -->
{% else %}
    μž‘μ„±λœ λ©”λͺ¨κ°€ μ—†μŠ΅λ‹ˆλ‹€.         <!-- μ—†μœΌλ©΄ λŒ€μ²΄ ν…μŠ€νŠΈ -->
{% endif %}
  • |linebreaksbr = λ©”λͺ¨μ—μ„œ μ€„λ°”κΏˆμ„ <br>νƒœκ·Έλ‘œ λ³€ν™˜ν•΄μ£ΌλŠ” ν•„ν„°

β‘’ 기둝 정보

<p>생성일: {{ study.created_at }}</p>
<p>μˆ˜μ •μΌ: {{ study.updated_at }}</p>
  • μ–Έμ œ 처음 μž‘μ„±ν–ˆκ³  μ–Έμ œ λ§ˆμ§€λ§‰μœΌλ‘œ μˆ˜μ •ν–ˆλŠ”μ§€

β‘£ λ²„νŠΌ

<a href="{% url 'study:list' %}">λͺ©λ‘μœΌλ‘œ</a>
  • 상세 νŽ˜μ΄μ§€μ—μ„œ λͺ©λ‘ νŽ˜μ΄μ§€λ‘œ λŒμ•„κ°€λŠ” λ²„νŠΌ

전체 흐름 ν•œμ€„ μš”μ•½

base.html λ ˆμ΄μ•„μ›ƒ 상속
    β†’ hero-card : 제λͺ© + μ„€λͺ…
    β†’ detail-card
        β†’ λ°°μ§€ : μΉ΄ν…Œκ³ λ¦¬, λ‚ μ§œ, μ‹œκ°„ μš”μ•½
        β†’ λ©”λͺ¨ : 있으면 좜λ ₯, μ—†μœΌλ©΄ λŒ€μ²΄ ν…μŠ€νŠΈ
        β†’ 기둝 정보 : 생성일, μˆ˜μ •μΌ
        β†’ λͺ©λ‘μœΌλ‘œ λ²„νŠΌ

HTML νƒœκ·Έ ꡬ쑰와 μ—­ν• 


1. νƒœκ·Έ 계측 ꡬ쑰

div (큰 λ°•μŠ€)
β”‚
β”œβ”€β”€ section (μ˜λ―ΈμžˆλŠ” ꡬ역)
β”‚       β”‚
β”‚       β”œβ”€β”€ span  (인라인 ν…μŠ€νŠΈ)
β”‚       β”œβ”€β”€ h1    (κ°€μž₯ 큰 제λͺ©)
β”‚       └── p     (문단 ν…μŠ€νŠΈ)
β”‚
└── section (μ˜λ―ΈμžˆλŠ” ꡬ역)
        β”‚
        β”œβ”€β”€ div   (κ·Έλƒ₯ λ°•μŠ€)
        β”‚     └── span (인라인 ν…μŠ€νŠΈ)
        β”‚
        └── div   (κ·Έλƒ₯ λ°•μŠ€)
              └── h2  (λ‘λ²ˆμ§Έ 제λͺ©)
              └── p   (문단 ν…μŠ€νŠΈ)

2. 각 νƒœκ·Έ μ—­ν• 

div β€” κ·Έλƒ₯ λ°•μŠ€ (의미 μ—†μŒ)

<div class="container">     <!-- 전체λ₯Ό κ°μ‹ΈλŠ” ν‹€ -->
<div class="record-meta">   <!-- λ°°μ§€λ“€ λ¬ΆλŠ” ν‹€ -->
<div style="margin-top">    <!-- κ°„κ²©μš© ν‹€ -->
  • λ ˆμ΄μ•„μ›ƒ μž‘λŠ” μš©λ„
  • 아무 의미 없이 κ·Έλƒ₯ 묢을 λ•Œ μ‚¬μš©

section β€” μ˜λ―ΈμžˆλŠ” ꡬ역

<section class="hero-card">    <!-- μ†Œκ°œ ꡬ역 -->
<section class="detail-card">  <!-- 상세 λ‚΄μš© ꡬ역 -->
  • div와 λΉ„μŠ·ν•˜μ§€λ§Œ "이건 ν•˜λ‚˜μ˜ λ…λ¦½λœ ꡬ역이야" λΌλŠ” 의미 포함
  • νŽ˜μ΄μ§€λ₯Ό λ…Όλ¦¬μ μœΌλ‘œ κ΅¬μ—­λ³„λ‘œ λ‚˜λˆŒ λ•Œ μ‚¬μš©

h1, h2 β€” 제λͺ© (μˆ«μžκ°€ 클수둝 μž‘μ€ 제λͺ©)

<h1>{{ study.title }}</h1>   <!-- νŽ˜μ΄μ§€ λŒ€ν‘œ 제λͺ© (κ°€μž₯ 큼) -->
<h2>ν•™μŠ΅ λ©”λͺ¨</h2>            <!-- μ„Ήμ…˜ 제λͺ© (λ‘λ²ˆμ§Έ) -->
<h2>기둝 정보</h2>            <!-- μ„Ήμ…˜ 제λͺ© (λ‘λ²ˆμ§Έ) -->
νƒœκ·Έν¬κΈ°μš©λ„
h1κ°€μž₯ νΌνŽ˜μ΄μ§€ λŒ€ν‘œ 제λͺ© (νŽ˜μ΄μ§€λ‹Ή 1개)
h2λ‘λ²ˆμ§Έμ„Ήμ…˜ 제λͺ©
h3~h6점점 μž‘μ•„μ§ν•˜μœ„ 제λͺ©

p β€” 문단 ν…μŠ€νŠΈ

<p class="hero-desc">κΈ°λ‘ν•œ 곡뢀 λ‚΄μš©μ„...</p>   <!-- μ„€λͺ… 문단 -->
<p class="record-memo">{{ study.memo }}</p>      <!-- λ©”λͺ¨ λ‚΄μš© -->
<p>생성일: {{ study.created_at }}</p>            <!-- 정보 ν…μŠ€νŠΈ -->
  • λ¬Έμž₯, 문단 ν…μŠ€νŠΈμ— μ‚¬μš©
  • μœ„μ•„λž˜λ‘œ μžλ™ μ—¬λ°± 생김

span β€” 인라인 ν…μŠ€νŠΈ 쑰각

<span class="hero-eyebrow">Study Detail</span>  <!-- μž‘μ€ 라벨 -->
<span class="badge">{{ study.get_category_display }}</span>  <!-- λ°°μ§€ -->
<span class="badge gray">{{ study.study_date }}</span>       <!-- λ°°μ§€ -->
  • pλ‚˜ div와 달리 μ€„λ°”κΏˆ 없이 μ˜†μœΌλ‘œ λ‚˜λž€νžˆ λΆ™μŒ
  • ν…μŠ€νŠΈ 일뢀뢄에 μŠ€νƒ€μΌλ§Œ μž…νž λ•Œ μ‚¬μš©

3. div vs section vs p vs span 비ꡐ

νƒœκ·Έμ€„λ°”κΏˆμ˜λ―Έμ£Ό μš©λ„
divOμ—†μŒλ ˆμ΄μ•„μ›ƒ λ°•μŠ€
sectionOμžˆμŒλ…λ¦½λœ ꡬ역
pOμžˆμŒλ¬Έλ‹¨ ν…μŠ€νŠΈ
spanXμ—†μŒμΈλΌμΈ ν…μŠ€νŠΈ

ν•œμ€„ 정리

div     β†’ κ·Έλƒ₯ λ¬ΆλŠ” λ°•μŠ€
section β†’ μ˜λ―ΈμžˆλŠ” ꡬ역 λ°•μŠ€
h1/h2   β†’ 제λͺ© (숫자 μž‘μ„μˆ˜λ‘ 큼)
p       β†’ 문단 ν…μŠ€νŠΈ
span    β†’ μ€„λ°”κΏˆ μ—†λŠ” ν…μŠ€νŠΈ 쑰각

빨간색 λΆ€λΆ„ = Django ν…œν”Œλ¦Ώ 문법

μ½”λ“œμ—μ„œ λΉ¨κ°„μƒ‰μœΌλ‘œ λ³΄μ΄λŠ” 뢀뢄은 크게 2κ°€μ§€ μ’…λ₯˜μž…λ‹ˆλ‹€


1. {% %} β€” ν…œν”Œλ¦Ώ νƒœκ·Έ (λͺ…λ Ήμ–΄)

{% extends 'base.html' %}   <!-- 상속해 -->
{% block content %}          <!-- μ—¬κΈ°μ„œλΆ€ν„° μ±„μšΈκ²Œ -->
{% endblock %}               <!-- μ—¬κΈ°κΉŒμ§€ -->

{% if study.memo %}          <!-- 쑰건문 -->
{% else %}
{% endif %}

{% url 'study:list' %}       <!-- URL 생성 -->
  • 파이썬 λ‘œμ§μ„ HTML μ•ˆμ—μ„œ μ‹€ν–‰ν•˜λŠ” λͺ…λ Ήμ–΄
  • if / else / endif, block, url λ“± λ™μž‘μ„ μˆ˜ν–‰

2. {{ }} β€” ν…œν”Œλ¦Ώ λ³€μˆ˜ (κ°’ 좜λ ₯)

{{ study.title }}                  <!-- 제λͺ© 좜λ ₯ -->
{{ study.get_category_display }}   <!-- μΉ΄ν…Œκ³ λ¦¬ 좜λ ₯ -->
{{ study.study_date }}             <!-- λ‚ μ§œ 좜λ ₯ -->
{{ study.hours }}                  <!-- μ‹œκ°„ 좜λ ₯ -->
{{ study.memo|linebreaksbr }}      <!-- λ©”λͺ¨ 좜λ ₯ -->
{{ study.created_at }}             <!-- 생성일 좜λ ₯ -->
  • views.pyμ—μ„œ λ„˜κ²¨μ€€ 데이터λ₯Ό 화면에 λΏŒλ €μ£ΌλŠ” μ—­ν• 
  • |linebreaksbr λŠ” ν•„ν„° β†’ μ€„λ°”κΏˆμ„ <br>둜 λ³€ν™˜

ν•œλˆˆμ— 비ꡐ

λ¬Έλ²•μƒκΉ€μƒˆμ—­ν• 
ν…œν”Œλ¦Ώ νƒœκ·Έ{% %}λͺ…λ Ή μ‹€ν–‰ (if, for, url...)
ν…œν”Œλ¦Ώ λ³€μˆ˜{{ }}κ°’ 좜λ ₯

μ‰½κ²Œ κΈ°μ–΅ν•˜λŠ” 법

{% %} β†’ νΌμ„ΌνŠΈ(%) 있음 β†’ λͺ…λ Ήμ–΄ (λ­”κ°€ ν•΄!)
{{ }} β†’ νΌμ„ΌνŠΈ μ—†μŒ  β†’ λ³€μˆ˜ 좜λ ₯ (κ°’ λ³΄μ—¬μ€˜!)

μΈλΌμΈμ΄λž€?


블둝 vs 인라인 차이

블둝 νƒœκ·Έ (div, p, section) β€” ν•œ 쀄 전체λ₯Ό μ°¨μ§€

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ div (ν•œ 쀄 전체 μ°¨μ§€)    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ p (또 ν•œ 쀄 전체 μ°¨μ§€)   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

인라인 νƒœκ·Έ (span) β€” λ‚΄μš©λ§ŒνΌλ§Œ μ°¨μ§€

β”Œβ”€β”€β”€β”€β”€β”€β”β”Œβ”€β”€β”€β”€β”€β”€β”β”Œβ”€β”€β”€β”€β”€β”€β”
β”‚span  β”‚β”‚span  β”‚β”‚span  β”‚  ← μ˜†μœΌλ‘œ λ‚˜λž€νžˆ λΆ™μŒ
β””β”€β”€β”€β”€β”€β”€β”˜β””β”€β”€β”€β”€β”€β”€β”˜β””β”€β”€β”€β”€β”€β”€β”˜

μ‹€μ œ μ½”λ“œλ‘œ 비ꡐ

<!-- p νƒœκ·Έ β†’ μ€„λ°”κΏˆ 됨 -->
<p>Django</p>
<p>Python</p>

<!-- κ²°κ³Ό -->
Django
Python   ← 각각 λ‹€λ₯Έ 쀄
<!-- span νƒœκ·Έ β†’ μ€„λ°”κΏˆ μ•ˆλ¨ -->
<span>Django</span>
<span>Python</span>

<!-- κ²°κ³Ό -->
Django Python  ← 같은 쀄에 λΆ™μŒ

μ½”λ“œμ—μ„œ span μ“΄ 이유

<span class="badge">μΉ΄ν…Œκ³ λ¦¬</span>
<span class="badge gray">λ‚ μ§œ</span>
<span class="badge gray">μ‹œκ°„</span>
κ²°κ³Ό ν™”λ©΄:
[ μΉ΄ν…Œκ³ λ¦¬ ]  [ λ‚ μ§œ ]  [ μ‹œκ°„ ]  ← 배지듀이 κ°€λ‘œλ‘œ λ‚˜λž€νžˆ

divλ‚˜ pλ₯Ό 썼닀면 λ°°μ§€κ°€ μ„Έλ‘œλ‘œ μŒ“μ˜€μ„ 것


ν•œμ€„ 정리

블둝(div, p)  β†’ 쀄 전체 μ°¨μ§€ β†’ μ„Έλ‘œλ‘œ μŒ“μž„
인라인(span)  β†’ λ‚΄μš©λ§ŒνΌλ§Œ  β†’ κ°€λ‘œλ‘œ λ‚˜λž€νžˆ
profile
κ°œλ°œμ–Έμ–΄λ₯Ό λ°°μš°λŠ” κ³Όμ • 기둝

0개의 λŒ“κΈ€