CSS Making Layouts (Box Model)

Oh JoonΒ·2020λ…„ 12μ›” 15일
0

Roadmap CSS

λͺ©λ‘ 보기
6/10
post-thumbnail

🎈 Box Model?

각각의 νƒœκ·Έλ“€μ΄ μ›ΉνŽ˜μ΄μ§€μ— ν‘œν˜„λ  λ•Œ κ·Έ νƒœκ·Έμ˜ μ—¬λ°±, μœ„μΉ˜, 크기 λ“± 뢀피감을 κ²°μ •ν•œλ‹€.
λ°•μŠ€λΌλŠ” ν‘œν˜„μ„ μ‚¬μš©ν•˜λŠ” μ΄μœ λŠ” 각각의 νƒœκ·Έλ“€μ˜ λ°”κΉ₯μͺ½μ— μ‚¬κ°ν˜•μ˜ λ°•μŠ€μ™€ 같은 λͺ¨μ–‘μœΌλ‘œ λ‘˜λŸ¬μŒ“μ΄κΈ° λ•Œλ¬Έμ΄λ‹€.


πŸŸ₯ Box ꡬ성

ν•˜λ‚˜μ˜ λ°•μŠ€λŠ” 4가지 μ˜μ—­μœΌλ‘œ 이루어진닀.

μ˜μ—­λ“€μ„ μžμ„Ένžˆ μ•Œμ•„λ³΄μž.

🟧 Content area

μ½˜ν…μΈ  경계가 감싼 μ˜μ—­μœΌλ‘œ κΈ€μ΄λ‚˜ 이미지, λΉ„λ””μ˜€ λ“± μš”μ†Œμ˜ μ‹€μ œ λ‚΄μš©μ„ ν¬ν•¨ν•œλ‹€. μ½˜ν…μΈ  μ˜μ—­μ˜ ν¬κΈ°λŠ” μ½˜ν…μΈ  λ„ˆλΉ„μ™€ 높이닀. 배경색과 배경이미지λ₯Ό 가지고 μžˆμ„ 수 μžˆλ‹€.

box-sizing μ†μ„±μ˜ 값이 기본값인 content-box이며 μš”μ†Œκ°€ block-level일 경우 μ½˜ν…μΈ  μ˜μ—­μ˜ 크기λ₯Ό width, height λ“± 속성을 μ‚¬μš©ν•΄ λͺ…μ‹œμ μœΌλ‘œ μ„€μ •ν•  수 μžˆλ‹€.

<!DOCTYPE html>
<head>
    <link rel="stylesheet" href="style.css">
</head>
<body>
<div style="font-size: 15px;
width: 100px;
height: 100px;
text-align: center;
line-height: 100px;">Content area</div>
</body>
</html>

개발자 도ꡬ F12λ₯Ό μ΄μš©ν•΄ ν™•μΈν•΄λ³΄λ‹ˆ 100x100 height,width κ°’μœΌλ‘œ μ§€μ •λœ 크기인 content areaλ₯Ό 확인할 수 μžˆμ—ˆλ‹€.


🟨 Padding area

μ•ˆμͺ½ μ—¬λ°± 경계λ₯Ό κ°μ‹ΈλŠ” μ˜μ—­μœΌλ‘œ, μ½˜ν…μΈ  μ˜μ—­μ„ μš”μ†Œμ˜ μ•ˆμͺ½ μ—¬λ°±κΉŒμ§€ ν¬ν•¨ν•˜λŠ” 크기둜 ν™•μž₯ν•œλ‹€. ν…Œλ‘λ¦¬μ™€ μ½˜ν…μΈ  μ˜μ—­ 사이에 μœ„μΉ˜ν•˜λ©° 음수의 크기λ₯Ό κ°€μ§ˆ 수 μ—†μ–΄ 0 λ˜λŠ” μ–‘μˆ˜ 값이여야 ν•œλ‹€. νŒ¨λ”©μ˜ μ „ν˜•μ μΈ μš©λ„λŠ” ν…Œλ‘λ¦¬μ—μ„œ μ½˜ν…μΈ λ₯Ό λ°€μ–΄λ‚΄λŠ” 것이닀.

  • padding-top
  • padding-right
  • padding-bottom
  • padding-left
<!DOCTYPE html>
<head>
    <link rel="stylesheet" href="style.css">
</head>
<body>
<div style="font-size: 15px;
width: 100px;
height: 100px;
text-align: center;
line-height: 100px;
border:1px solid black;
padding:20px">Content area</div>
</body>
</html>

padding μ§€μ •ν•˜λŠ” 방법은 μ—¬λŸ¬κ°€μ§€λ‹€.

  • padding:20px 사방면 λͺ¨λ‘ 20px이 μ§€μ •λœλ‹€.
  • padding:20px 0px μƒν•˜ 20px, 쒌우 20px이 μ§€μ •λœλ‹€.
  • padding:20px 10px 5px 0px μœ„λΆ€ν„° μ‹œκ³„λ°©ν–₯으둜 μ°¨λ‘€λ‘œ μ§€μ •λœλ‹€.

🟩 Border area

border areaλŠ” ν…Œλ‘λ¦¬ μ˜μ—­μ„ λ§ν•œλ‹€. μš”μ†Œμ˜ 경계선을 λ‚˜νƒ€λ‚Έλ‹€. ν…Œλ‘λ¦¬λŠ” marginκ³Ό padding 사이에 그렀진닀. content-box λͺ¨λΈμ„ μ‚¬μš©ν•˜λŠ” 경우 ν…Œλ‘λ¦¬μ˜ 크기가 λ°•μŠ€μ˜ width와 height에 μΆ”κ°€λœλ‹€.
border-box λͺ¨λΈμ„ μ‚¬μš©ν•˜λŠ” 경우 ν…Œλ‘λ¦¬μ˜ 크기가 λ°•μŠ€μ˜ width와 heightλ₯Ό ν¬ν•¨ν•˜μ§€ μ•ŠλŠ”λ‹€.

border 사방면에 각각 λ„ˆλΉ„, 색상, μŠ€νƒ€μΌ, λ„ˆλΉ„ 등을 μ„€μ •ν•  수 μžˆλ‹€.


🟦 Margin area

margin areaλŠ” ν…Œλ‘λ¦¬ λ°”κΉ₯ μ—¬λ°± μ˜μ—­μ„ λ§ν•œλ‹€. μ–‘μˆ˜κ°’, μŒμˆ˜κ°’ λͺ¨λ‘ κ°€μ§ˆ 수 있으며 λ°•μŠ€ ν•œμͺ½ 면에 μŒμˆ˜κ°’μ„ μ„€μ •ν•˜λ©΄ νŽ˜μ΄μ§€μ˜ λ‹€λ₯Έ λΆ€λΆ„κ³Ό 곡백이 κ²ΉμΉ  수 μžˆλ‹€. margin 속성을 μ‚¬μš©ν•˜μ—¬ μš”μ†Œμ˜ 사방 여백을 ν•œ λ²ˆμ— μ œμ–΄ν•˜κ±°λ‚˜ 각 λ³€μ˜ 여백을 λ”°λ‘œ μ œμ–΄ν•  수 μžˆλ‹€.

  • margin-top
  • margin-right
  • margin-bottom
  • margin-left
<!DOCTYPE html>
<head>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <div style="border:1px solid black
    ;">
<div style="font-size: 15px;
width: 100px;
height: 100px;
text-align: center;
line-height: 100px;
border:5px solid red;
padding:20px;
margin:20px;
">Box Model</div>

<div style="font-size: 15px;
width: 100px;
height: 100px;
text-align: center;
line-height: 100px;
border:5px solid blue;
padding:20px;
margin-left:40px;
">Box Model2</div>
</div>
</body>
</html>

margin areaλ₯Ό μ΄ν•΄ν•˜κΈ° μœ„ν•΄ 두 λ°•μŠ€ λͺ¨λΈμ„ 검은색 ν…Œλ‘λ¦¬ μœ„μΉ˜μ‹œμΌ°λ‹€. Box Model1은 ν…Œλ‘λ¦¬ λ°– margin을 20px둜 μ§€μ •ν•˜μ—¬ 검은색 ν…Œλ‘λ¦¬, Box Model2 사이에 여백이 μ‘΄μž¬ν•˜λŠ” 것을 확인할 수 μžˆλ‹€.

Box Model2λŠ” margin-left:40px을 μ§€μ •ν•˜μ—¬ 검은색 ν…Œλ‘λ¦¬μ™€ Box Model2 μ™Όμͺ½ 사이 λΆ€λΆ„μ—λ§Œ 여백이 μžˆλŠ” 것을 확인할 수 μžˆλ‹€.


μ°Έμ‘°

MDN CSS κΈ°λ³Έ λ°•μŠ€ λͺ¨λΈ μž…λ¬Έ
MDN BOX Model
μƒν™œμ½”λ”© λ°•μŠ€λͺ¨λΈ
μƒν™œμ½”λ”© λ°•μŠ€λͺ¨λΈ2

profile
Front-end developer

0개의 λŒ“κΈ€