λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Lect & Tip/bootstrap

λΆ€νŠΈμŠ€νŠΈλž© width grid incorrect

by 낯선곡간2019 2023. 10. 22.

λͺ©μ°¨

    λΆ€νŠΈμŠ€νŠΈλž©μ„ ν™œμš©ν•œ μ›Ή λ””μžμΈμ—μ„œ κ°€λ‘œ 폭 쑰절

    λΆ€νŠΈμŠ€νŠΈλž©μ€ λ°˜μ‘ν˜• μ›Ή λ””μžμΈμ„ μ‰½κ²Œ λ§Œλ“€μ–΄μ£ΌλŠ” ν”„λ ˆμž„μ›Œν¬μž…λ‹ˆλ‹€. 그런데 λ•Œλ•Œλ‘œ, 특히 μƒˆλ‘œ μ‹œμž‘ν•˜λŠ” λΆ„λ“€μ—κ²ŒλŠ” κ·Έλ¦¬λ“œ μ‹œμŠ€ν…œμ΄λ‚˜ μ»¨ν…Œμ΄λ„ˆ μ‚¬μš©μ— μžˆμ–΄ ν˜Όλž€μ„ 쀄 수 μžˆμŠ΅λ‹ˆλ‹€. μ—¬κΈ°μ„œλŠ” λΆ€νŠΈμŠ€νŠΈλž©μ˜ κ°€λ‘œ 폭(width) κ΄€λ ¨ 문제λ₯Ό ν•΄κ²°ν•˜λŠ” 방법에 λŒ€ν•΄ μ„€λͺ…ν•˜κ³ μž ν•©λ‹ˆλ‹€.

    λΆ€νŠΈμŠ€νŠΈλž©μ˜ κ·Έλ¦¬λ“œ μ‹œμŠ€ν…œ 이해

    λΆ€νŠΈμŠ€νŠΈλž©μ˜ κ·Έλ¦¬λ“œ μ‹œμŠ€ν…œμ€ μ»¨ν…Œμ΄λ„ˆ, ν–‰(row), 그리고 μ—΄(column) μ„Έ 가지 μ£Όμš” ꡬ성 μš”μ†Œλ‘œ 이루어져 μžˆμŠ΅λ‹ˆλ‹€. 이듀은 λ°˜μ‘ν˜• λ ˆμ΄μ•„μ›ƒμ„ λ§Œλ“€κΈ° μœ„ν•΄ μ„œλ‘œ ν•¨κ»˜ μž‘λ™ν•©λ‹ˆλ‹€. 기본적으둜, .row ν΄λž˜μŠ€λŠ” κ°€λ‘œ λ°©ν–₯의 여백을 λ§Œλ“€μ–΄λ‚΄λŠ”λ°, μ΄λŠ” 열듀이 μ μ ˆν•œ 간격을 μœ μ§€ν•  수 μžˆλ„λ‘ ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 이 여백은 .rowκ°€ λΆ€λͺ¨ μš”μ†Œμ˜ 경계λ₯Ό λ²—μ–΄λ‚˜κ²Œ λ§Œλ“€ μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

    λΆ€νŠΈμŠ€νŠΈλž© width grid incorrect

    .row ν΄λž˜μŠ€κ°€ λΆ€λͺ¨ μš”μ†Œμ˜ 경계λ₯Ό λ„˜μ–΄μ„œλŠ” 상황이 λ°œμƒν–ˆκ³ , .info 및 λ‹€λ₯Έ μš”μ†Œλ“€κ³Όμ˜ 일관성이 λ–¨μ–΄μ§€λŠ” λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” λΆ€νŠΈμŠ€νŠΈλž©μ˜ κ·Έλ¦¬λ“œ μ‹œμŠ€ν…œμ΄ μ˜λ„ν•œ λ°”μ™€λŠ” λ‹€λ₯΄κ²Œ μž‘λ™ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

    ν•΄κ²° λ°©μ•ˆ

    ν•΄λ‹Ή 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄μ„œλŠ” .container λ˜λŠ” .container-fluid 클래슀λ₯Ό 적절히 μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€. 이듀은 .row와 ν•¨κ»˜ μ‚¬μš©λ  λ•Œ, μ˜¬λ°”λ₯Έ νŒ¨λ”©κ³Ό λ§ˆμ§„μ„ μ„€μ •ν•˜μ—¬ μš”μ†Œλ“€μ΄ μ˜ˆμƒμΉ˜ λͺ»ν•œ λ°©μ‹μœΌλ‘œ ν™•μž₯λ˜λŠ” 것을 λ°©μ§€ν•©λ‹ˆλ‹€.

    <div id="wrapper">
      <!-- .container λ˜λŠ” .container-fluid 클래슀λ₯Ό μΆ”κ°€ν•©λ‹ˆλ‹€. -->
      <div class="container">
        <div class="row">
          <div class="col-12">
            ...
          </div>
        </div>
      </div>
    </div>

    .containerλŠ” λ°˜μ‘ν˜• κ³ μ • λ„ˆλΉ„ μ»¨ν…Œμ΄λ„ˆλ₯Ό μ œκ³΅ν•˜λ©°, .container-fluidλŠ” 전체 λ„ˆλΉ„λ₯Ό μ‚¬μš©ν•˜λŠ” μ»¨ν…Œμ΄λ„ˆλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.

    ꡬ체적인 μˆ˜μ • 방법

    기쑴의 μ½”λ“œμ—μ„œ .row μš”μ†Œ 주변에 .container 클래슀λ₯Ό μΆ”κ°€ν•¨μœΌλ‘œμ¨, κ·Έλ¦¬λ“œμ˜ 음수 λ§ˆμ§„μ΄ .container에 μ˜ν•΄ μƒμ‡„λ˜μ–΄ λ‚΄λΆ€ μš”μ†Œλ“€μ΄ λΆ€λͺ¨ μš”μ†Œλ₯Ό λ²—μ–΄λ‚˜μ§€ μ•Šκ²Œ λ©λ‹ˆλ‹€.

    μ•„λž˜λŠ” μˆ˜μ •λœ μ˜ˆμ‹œ μ½”λ“œμž…λ‹ˆλ‹€:

    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" integrity="sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65" crossorigin="anonymous">
    <style>
    #wrapper {background: yellow; max-width: 500px; margin: 0 auto; }
    .info {background: blue;}
    #side {background: red}
    #data {background: orange;}
    </style>
    
    <div id="wrapper">
      <!-- .container 클래슀 μΆ”κ°€ -->
      <div class="container">
        <div class="row">
          <div class="col-12">
            ...
            <div class="row">
              <!-- λ‚΄λΆ€ row에 λŒ€ν•΄μ„œλŠ” container ν΄λž˜μŠ€κ°€ ν•„μš” μ—†μŠ΅λ‹ˆλ‹€. -->
              <section id="side" class="col-md-4 col-lg-3">
                ...
              </section>
    
              <section class="col-md-8 col-lg-9">
                ...
              </section>
            </div>
          </div>
        </div>
      </div>
    </div>
    
    

    주의 사항

    λΆ€νŠΈμŠ€νŠΈλž©μ˜ 클래슀λ₯Ό μ‚¬μš©ν•  λ•ŒλŠ” ν•΄λ‹Ή ν΄λž˜μŠ€κ°€ μ–΄λ– ν•œ 영ν–₯을 λ―ΈμΉ˜λŠ”μ§€, 그리고 λΆ€λͺ¨-μžμ‹ κ΄€κ³„μ—μ„œ μ–΄λ–»κ²Œ μƒν˜Έμž‘μš©ν•˜λŠ”μ§€ μ΄ν•΄ν•˜λŠ” 것이 μ€‘μš”ν•©λ‹ˆλ‹€. 클래슀λ₯Ό μΆ”κ°€ν•˜κ±°λ‚˜ μ œκ±°ν•  λ•Œλ§ˆλ‹€ μ›Ή νŽ˜μ΄μ§€λ₯Ό μƒˆλ‘œκ³ μΉ¨ν•˜κ³ , λ³€κ²½ 사항이 κΈ°λŒ€ν•œ λŒ€λ‘œ μ μš©λ˜λŠ”μ§€ ν™•μΈν•˜μ„Έμš”.

    λΆ€νŠΈμŠ€νŠΈλž©, μ›Ή λ””μžμΈ, λ°˜μ‘ν˜• λ ˆμ΄μ•„μ›ƒ, κ·Έλ¦¬λ“œ μ‹œμŠ€ν…œ, μ»¨ν…Œμ΄λ„ˆ, μ—΄, ν–‰, CSS, λ§ˆμ§„, νŒ¨λ”©, λΆ€λͺ¨ μš”μ†Œ, μžμ‹ μš”μ†Œ, λ„ˆλΉ„ 쑰절, μ΅œλŒ€ λ„ˆλΉ„, κ³ μ • λ„ˆλΉ„, 전체 λ„ˆλΉ„

    λ°˜μ‘ν˜•

    λŒ“κΈ€