KKG
Programming
KKG
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ์ „์ฒด ๊ธ€ ๋ณด๊ธฐ (84)
    • ํšŒ๊ณ  (9)
    • Bootcamp (19)
    • Error Handling (2)
    • Kotlin (1)
    • Java (19)
      • Java (14)
      • Spring (1)
      • JPA (2)
      • Link (2)
    • Python (5)
    • ์•Œ๊ณ ๋ฆฌ์ฆ˜ (20)
      • ์•Œ๊ณ ๋ฆฌ์ฆ˜ (4)
      • ๋ฐฑ์ค€ (14)
      • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค (1)
      • Link (1)
    • SQL (5)
      • SQL (1)
      • MySQL (4)
    • Web (2)
    • etc (1)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก
  • ๊นƒํ—ˆ๋ธŒ

์ธ๊ธฐ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
KKG

Programming

HTML, CSS
Bootcamp

HTML, CSS

2022. 6. 27. 11:51

๐Ÿ“‹ ์˜ค๋Š˜ ๋ฐฐ์šด ๋‚ด์šฉ

  • HTML
  • CSS

๐Ÿ“‹ HTML - ํ•™์Šต๋ชฉํ‘œ

  • HTML์ด "๊ตฌ์กฐ๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ์–ธ์–ด"๋ผ๋Š” ๊ฒƒ์„ ์ดํ•ดํ•˜๊ณ , ๊ทธ ๊ธฐ๋ณธ ๊ตฌ์กฐ์™€ ๋ฌธ๋ฒ•์„ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • HTML์ด ๋งˆํฌ์—… ์–ธ์–ด๋ผ๋Š” ๊ฒƒ์„ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” HTML ์š”์†Œ(Element)๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•Œ๊ณ  ์ฐจ์ด๋ฅผ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋‹ค.
    • <div>, <span>, <ul>, <ol>, <li>, <input> ๋“ฑ
  • ์‹œ๋งจํ‹ฑ ํƒœ๊ทธ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์ดํ•ดํ•˜๊ณ , ์™œ ์‚ฌ์šฉํ•˜๋Š” ์ง€ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์›น ๋ฌธ์„œ์˜ ๊ตฌ์กฐ์™€ ๋‚ด์šฉ์„ HTML๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ“˜ HTML

  • HyperText Markup Language
  • ์›นํŽ˜์ด์ง€์˜ ํ‹€์„ ๋งŒ๋“œ๋Š” ๋งˆํฌ์—… ์–ธ์–ด
  • tag๋“ค์˜ ์ง‘ํ•ฉ (<div>, <span>, <ul>, <ol>, <li>, <input>)
  • ํŠธ๋ฆฌ ๊ตฌ์กฐ

๐Ÿ“„ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ํƒœ๊ทธ

ํƒœ๊ทธ ์„ค๋ช…
<div> ํ•œ์ค„์„ ์ฐจ์ง€ ( ์ค„๋ฐ”๊ฟˆ O )
<span> ์ปจํ…์ธ  ํฌ๊ธฐ๋งŒํผ ๊ณต๊ฐ„์„ ์ฐจ์ง€ ( ์ค„๋ฐ”๊ฟˆ  X )
<img> ์ด๋ฏธ์ง€ ํƒœ๊ทธ
<a> ๋งํฌ ํƒœ๊ทธ
<ul>, <li> ์ˆœ์„œ๊ฐ€ ์—†๋Š” ๋ฆฌ์ŠคํŠธ, ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ
<input> ์ž…๋ ฅํผ ( ํ…์ŠคํŠธ ๋ฐ•์Šค, ๋ผ๋””์˜ค ๋ฒ„ํŠผ, ์ฒดํฌ ๋ฐ•์Šค )
<textarea> ์—ฌ๋Ÿฌ์ค„ ์ž…๋ ฅ ํ…์ŠคํŠธ ๋ฐ•์Šค
<button> ๋ฒ„ํŠผ ํƒœ๊ทธ
<h1>, <h2>, ... ์ˆซ์ž๊ฐ€ ์ž‘์„์ˆ˜๋ก ๊ธ€์”จ ํฌ๊ธฐ๊ฐ€ ํฐ ์ œ๋ชฉ ํƒœ๊ทธ

๐Ÿ“„ Self-Closing Tag

No. Tag No. Tag
1 area 10 source
2 base 11 link
3 br 12 wbr
4 col 13 param
5 meta 14 track
6 embed 15 command
7 hr 16 keygen
8 img 17 menuitem
9 input    

 


๐Ÿ“‹ CSS - ํ•™์Šต๋ชฉํ‘œ

  • CSS์˜ ์‚ฌ์šฉ ๋ชฉ์ ์„ ์ดํ•ดํ•˜๊ณ , ๊ธฐ๋ณธ์ ์ธ ๋ฌธ๋ฒ•๊ณผ ๊ตฌ์กฐ๋ฅผ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • HTML์— CSS๋ฅผ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ง์ ‘ HTML ์•ˆ์— CSS๋ฅผ ์ •์˜ํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋ฅผ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • CSS๋ฅผ ์ด์šฉํ•ด ํ…์ŠคํŠธ๋ฅผ ๊พธ๋ฐ€ ์ˆ˜ ์žˆ๋‹ค.
  • ๊ธฐ๋ณธ์ ์ธ CSS ๋ฐ•์Šค ๋ชจ๋ธ์„ ์ดํ•ดํ•˜๊ณ  ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • MDN, W3C School ๋“ฑ์˜ ๋ ˆํผ๋Ÿฐ์Šค ์‚ฌ์ดํŠธ๋ฅผ ์ด์šฉํ•ด CSS ์†์„ฑ์„ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ“˜ CSS

  • Cascading Style Sheets
  • ์›น ํŽ˜์ด์ง€ ์Šคํƒ€์ผ ๋ฐ ๋ ˆ์ด์•„์›ƒ์„ ์ •์˜ํ•˜๋Š” ์Šคํƒ€์ผ์‹œํŠธ ์–ธ์–ด
  • ์ข‹์€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ
  • ์›น ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฐฐ์šฐ๊ธฐ ๊ฐ€์žฅ ์‰ฌ์šด ๋™์‹œ์—, ๊ฐ€์žฅ ์–ด๋ ค์šด ์–ธ์–ด

๐Ÿ“ฑ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค (UI, User Interface)

  • ์ปดํ“จํ„ฐ์˜ ๋ณต์žกํ•œ ๋‚ด๋ถ€ ์ž‘๋™์›๋ฆฌ๋ฅผ ์ดํ•ดํ•˜๊ฑฐ๋‚˜ CLI ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์ง€ ๋ชปํ•ด๋„ ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๊ฐ€ ์‰ฝ๊ฒŒ ์ปดํ“จํ„ฐ์—๊ฒŒ ์˜๋„ํ•œ ํ–‰๋™์„ ๋ช…๋ นํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“  ์ธํ„ฐํŽ˜์ด์Šค
  • ์ข‹์€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ (UX, User Experience) ์€ ์ข‹์€ UI์—์„œ ๋‚˜์˜จ๋‹ค.

๐Ÿ“„ CSS ๋ฌธ๋ฒ• ๊ตฌ์„ฑ

์…€๋ ‰ํ„ฐ (Selector) {

    ์†์„ฑ๋ช… (Property): ์†์„ฑ๊ฐ’ (Value);

}

body {
    color: blue;
    font-size: 30px;
}

๐Ÿ“„ CSS ์ ์šฉ

HTML์—์„œ CSS ํŒŒ์ผ ์—ฐ๊ฒฐ

<link rel="stylesheet" href="index.css" />

HTML์—์„œ ์ง์ ‘ ์ž‘์„ฑ ( ๊ด€์‹ฌ์‚ฌ ๋ถ„๋ฆฌ ์ธก๋ฉด์—์„œ ๊ถŒ์žฅ๋˜์ง€ ์•Š์Œ )

<style>
    body {
        color: blue;
    }
</style>

์ธ๋ผ์ธ ์Šคํƒ€์ผ ( ๊ด€์‹ฌ์‚ฌ ๋ถ„๋ฆฌ ์ธก๋ฉด์—์„œ ๊ถŒ์žฅ๋˜์ง€ ์•Š์Œ )

<nav style="background: #eee; color: blue">...</nav>

๐Ÿ“„ ์…€๋ ‰ํ„ฐ

ํƒœ๊ทธ ์ด๋ฆ„์œผ๋กœ ์ ์šฉ

li {
    color: blue;
}

์•„์ด๋””๋กœ ์ ์šฉ

#abcd {
    color: blue;
}

ํด๋ž˜์Šค๋กœ ์ ์šฉ

.abcd {
    color: blue;
}
id class
#์œผ๋กœ ์„ ํƒ .์œผ๋กœ ์„ ํƒ
ํ•œ ๋ฌธ์„œ์— ๋‹จ ํ•˜๋‚˜ ์—ฌ๋Ÿฌ ์š”์†Œ ๊ฐ€๋Šฅ
ํŠน์ • ์š”์†Œ์— ์ด๋ฆ„ ๋ถ™์ด๋Š”๋ฐ ์‚ฌ์šฉ ์Šคํƒ€์ผ์˜ ๋ถ„๋ฅ˜์— ์‚ฌ์šฉ

๊ทธ ์™ธ

/* ์ „์ฒด ์…€๋ ‰ํ„ฐ */
* { }

/* ์—ฌ๋Ÿฌ ํƒœ๊ทธ ์„ ํƒ */
section, h1 { }

/* attribute ์…€๋ ‰ํ„ฐ */
a[href] { }
p[id="only"] { }
p[class~="out"] { }
p[class|="out"] { }
section[id^="sect"] { }
div[class$="2"] { }
div[class*="w"] { }

/* ํ›„์† ์…€๋ ‰ํ„ฐ */
header h1 { }

/* ์ž์‹ ์…€๋ ‰ํ„ฐ */
header > p { }

/* ์ธ์ ‘ ํ˜•์ œ ์…€๋ ‰ํ„ฐ */
section + p { }

/* ํ˜•์ œ ์…€๋ ‰ํ„ฐ */
section ~ p { }

/* ๊ฐ€์ƒ ํด๋ž˜์Šค */
a:link { }
a:visited { }
a:hover { }
a:active { }
a:focus { }

/* ์š”์†Œ ์ƒํƒœ ์…€๋ ‰ํ„ฐ */
input:checked + span { }
input:enabled + span { }
input:disabled + span { }

/* ๊ตฌ์กฐ ๊ฐ€์ƒ ํด๋ž˜์Šค ์…€๋ ‰ํ„ฐ */
p:first-child { }
ul > li:last-child { }
ul > li:nth-child(2n) { }
section > p:nth-child(2n+1) { }
ul > li:first-child { }
li:last-child { }
div > div:nth-child(4) { }
div:nth-last-child(2) { }
section > p:nth-last-child(2n + 1) { }
p:first-of-type { }
div:last-of-type { }
ul:nth-of-type(2) { }
p:nth-last-of-type(1) { }

/* ๋ถ€์ • ์…€๋ ‰ํ„ฐ */
input:not([type="password"]) { }
div:not(:nth-of-type(2)) { }

/* ์ •ํ•ฉ์„ฑ ํ™•์ธ ์…€๋ ‰ํ„ฐ */
input[type="text"]:valid { }
input[type="text"]:invalid { }

๐Ÿ“„ ํ…์ŠคํŠธ ์†์„ฑ

.box {
  color: #155724; /* ๊ธ€์ž ์ƒ‰์ƒ */
  background-color: #d4edda; /* ๋ฐฐ๊ฒฝ ์ƒ‰์ƒ */
  border-color: #c3e6cb; /* ํ…Œ๋‘๋ฆฌ ์ƒ‰์ƒ */
  font-family: "SF Pro KR", "MalgunGothic", "Verdana"; /* ๊ธ€๊ผด */
  font-size: 24px;  /* ๊ธ€์ž ํฌ๊ธฐ */
}

๊ทธ ์™ธ

  • ์ ˆ๋Œ€ ๋‹จ์œ„: px, pt ๋“ฑ
  • ์ƒ๋Œ€ ๋‹จ์œ„: %, em, rem, ch, vw, vh ๋“ฑ
  • ๊ตต๊ธฐ: font-weight
  • ๋ฐ‘์ค„, ๊ฐ€๋กœ์ค„: text-decoration
  • ์ž๊ฐ„: letter-spacing
  • ํ–‰๊ฐ„: line-height
  • ๊ฐ€๋กœ ์ •๋ ฌ: text-align
  • ์„ธ๋กœ ์ •๋ ฌ: vertical-align (display ์†์„ฑ์ด ๋ฐ˜๋“œ์‹œ table-cell)

๐Ÿ“„ ๋ฐ•์Šค ๋ชจ๋ธ

์ค„๋ฐ”๊ฟˆ์ด ๋˜๋Š” ๋ฐ•์Šค

  • block
  • <h1>, <p>

์ค„๋ฐ”๊ฟˆ ์—†์ด ์˜†์œผ๋กœ ๋ถ™๋Š” ๋ฐ•์Šค

  • inline, inline-block
  • <span>: inline
span {
  background: yellow;
  display: inline-block; /* inline-block์œผ๋กœ ๋ฐ”๊พธ๋Š” ์ฝ”๋“œ */
  width: 100px;
  height: 100px;
}
  block inline-block inline
์ค„๋ฐ”๊ฟˆ O X X
๊ธฐ๋ณธ ๋„ˆ๋น„ (width) 100% ๊ธ€์ž๊ฐ€ ์ฐจ์ง€ํ•˜๋Š” ๋งŒํผ ๊ธ€์ž๊ฐ€ ์ฐจ์ง€ํ•˜๋Š” ๋งŒํผ
width, height ์‚ฌ์šฉ ๊ฐ€๋Šฅ O O X

๐Ÿ“„ ๋ฐ•์Šค์˜ ๊ตฌ์„ฑ ์š”์†Œ

  • border (ํ…Œ๋‘๋ฆฌ)
  • margin (์™ธ๋ถ€ ์—ฌ๋ฐฑ)
  • padding (๋‚ด๋ถ€ ์—ฌ๋ฐฑ)
* {
  box-sizing: border-box; /* ์—ฌ๋ฐฑ๊ณผ ํ…Œ๋‘๋ฆฌ๋ฅผ ํฌํ•จํ•œ ํฌ๊ธฐ๋กœ ๊ณ„์‚ฐ */
}

p {
  border: 1px solid blue; /* 1px์˜ ํŒŒ๋ž€์ƒ‰ ์‹ค์„  ํ…Œ๋‘๋ฆฌ ์„ค์ • */
  
  margin: 10px 20px 30px 40px; /* top, right, bottom, left ์™ธ๋ถ€ ์—ฌ๋ฐฑ ์„ค์ • */
  margin: 10px 20px; /* top & bottom, left % right ์™ธ๋ถ€ ์—ฌ๋ฐฑ ์„ค์ • */
  margin: 10px; /* ๋ชจ๋“  ๋ฐฉํ–ฅ ์™ธ๋ถ€ ์—ฌ๋ฐฑ ์„ค์ • */
  
  /* ํŠน์ • ๋ฐฉํ–ฅ ์™ธ๋ถ€ ์—ฌ๋ฐฑ ์„ค์ • */
  margin-top: 10px;
  margin-right: 20px;
  margin-bottom: 30px;
  margin-left: 40px;
  
  padding: 10px 20px 30px 40px; /* top, right, bottom, left ๋‚ด๋ถ€ ์—ฌ๋ฐฑ ์„ค์ • */
  
  /* ๋ฐ•์Šค๋ฅผ ๋ฒ—์–ด๋‚˜๋Š” ์ปจํ…์ธ  ์ฒ˜๋ฆฌ  */
  height: 40px; /* ๋†’์ด๋ณด๋‹ค ์ž‘๊ฒŒ ์„ค์ • */
  overflow: auto; /* ๋ฐ•์Šค๋ณด๋‹ค ํฌ๋ฉด ์Šคํฌ๋กค ํ‘œ์‹œ */
}

HTML Exercises

CSS Exercises

 

    'Bootcamp' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • Linux ๊ธฐ์ดˆ
    • Twittler ๋ชฉ์—… ๊ตฌํ˜„ - Pair Programming
    • ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ, ์›น ์•ฑ ํ™”๋ฉด ์„ค๊ณ„ํ•˜๊ธฐ
    • ์ปดํ“จํ„ฐ์™€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ, ์›น

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”