[๋ฉ‹์‚ฌ๐Ÿฆ] 1์ฃผ์ฐจ(์ˆ˜) HTML ๋งˆ๋ฌด๋ฆฌ ์ •๋ฆฌ, ๊ณผ์ œ ๊ฐœ์„ 

์Ÿˆ๋ชฝยท2021๋…„ 11์›” 3์ผ
7

๊ฐœ๋ฐœ๋‰ด๋น„(21/10/23~)

๋ชฉ๋ก ๋ณด๊ธฐ
7/20
post-thumbnail

๋ฉ‹์Ÿ์ด ์‚ฌ์ž์ฒ˜๋Ÿผ๐Ÿฆ ํ”„๋ก ํŠธ์—”๋“œ ์Šค์ฟจ 1๊ธฐ 1์ฃผ์ฐจ(์ˆ˜) ํšŒ๊ณ  - November 3, 2021


[ ๊ณต๋ถ€ ]

๋‹ค์‹œ ํ’€ํƒ€์ž„ ์ˆ˜์—… ๐Ÿ”ฅ! HTML์„ ๋งˆ๋ฌด๋ฆฌํ•˜๊ณ  ์ด์ œ CSS ์ง„๋„๋กœ ๋„˜์–ด๊ฐ”๋‹ค. ์˜ค๋Š˜์€ ๋ณต์Šต๋Ÿ‰์ด ๋งŽ์•„์„œ ๊ณผ์ œ๋Š” ์—†์—ˆ๋‹ค. ๊นƒํ—ˆ๋ธŒ์— ํ”„๋ก ํŠธ์—”๋“œ ์Šค์ฟจ ๋ ˆํŒŒ์ง€ํ† ๋ฆฌ๋ฅผ ๊น”๋”ํ•˜๊ฒŒ ์ •๋ฆฌํ–ˆ๊ณ  ์˜ค๋Š˜ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ๊นŒ์ง€ ์ปค๋ฐ‹ํ–ˆ๋‹ค. ์ƒˆ๋กœ ์•Œ๊ฒŒ๋œ ๊ฒƒ๋“ค์„ ๋น ๋ฅด๊ฒŒ ์ •๋ฆฌํ•ด๋ด์•ผ๊ฒ ๋‹ค. CSS ์ •๋ฆฌ๋Š” ๋‚ด์ผ!


[ HTML ๊ฐ•์˜์š”์•ฝ + TIL ]

<form> ๊ตฌ์กฐ ์ดํ•ดํ•˜๊ธฐ

  • <form> ์•ˆ์— <filedset> ์œผ๋กœ ํผ ์ปจํŠธ๋กค(<input>, <select>, ...)๋“ค์„ ๊ทธ๋ฃนํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • <legend>๋Š” <fieldset> ๋ฐ”๋กœ ํ•˜๋‹จ์— ์œ„์น˜ํ•ด์•ผํ•˜๋ฉฐ, ๋ฌถ์€ ๊ทธ๋ฃน์˜ ์ด๋ฆ„์„ ์ ๋Š” ๊ฒƒ.

DOM์ด๋ž€?

(Document Object Model) ๋ฌธ์„œ๊ฐ์ฒด๋ชจ๋ธ
- HTML, XML ๋ฌธ์„œ์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ interface
- object๋ž€ ์›นํŽ˜์ด์ง€ ๋‚ด JavaScript๊ฐ€ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด๋“ค์„ ๋งํ•œ๋‹ค. (์ด์ •๋„๋งŒ ์•Œ๊ณ  ํŠธ๋ฆฌ, ๋…ธ๋“œ ๊ฐœ๋…์€ ๋‚˜์ค‘์— ๋ณผ ๊ฒƒ!)

shadow DOM์ด๋ž€?

<form>
  <fieldset oninput="๋ณผ๋ฅจ.value=parseInt(๋ณผ๋ฅจ๋ฐ”.value)">
      <legend>๋ณผ๋ฅจ๋ฐ”</legend>
      <input id="๋ณผ๋ฅจ๋ฐ”" name="bar" type="range" title="๋ฒ”์œ„์„ ํƒ" />
      <output name="๋ณผ๋ฅจ" title="๋ณผ๋ฅจํ‘œ์‹œ">0</output>
    </fieldset>
<form>

์œ„ ์˜ˆ์ œ์—์„œ ํ˜ธ์ŠคํŠธ HTML ๋ฌธ์„œ์—๋Š” ๋‹จ์ˆœํ•œ ๋ณผ๋ฅจ๋ฐ” <input> ์š”์†Œ๊ฐ€ ๋…ธ์ถœ๋˜์ง€๋งŒ, ๊ทธ ๋‚ด๋ถ€๋Š” DOM์˜ ๊ธ€๋กœ๋ฒŒ ๋ฒ”์œ„์— ํฌํ•จ๋˜์ง€ ์•Š๋Š” ์—ฌ๋Ÿฌ ์ž‘์€ <div> ์š”์†Œ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.
Chrome ๊ฐœ๋ฐœ์ž ๋„๊ตฌ - ํ™˜๊ฒฝ์„ค์ • - ์š”์†Œ์—์„œ '์‚ฌ์šฉ์ž ์—์ด์ „ํŠธ ๊ทธ๋ฆผ์ž DOM ํ‘œ์‹œ'์— ์ฒดํฌ๋ฅผ ํ•ด์ฃผ๋ฉด ์ˆจ๊ฒจ์ ธ ์žˆ๋˜ #thumb๊ณผ #track ๋“ฑ ์„ธ๋ถ€ ํŒŒํŠธ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
์ด์™€ ๊ฐ™์€ ์š”์†Œ๋“ค์„ ๋งŒ๋“ค์–ด ๋†“๊ณ  ์ฐ์–ด๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ('์š”์†Œ์˜ ์บก์Šํ™”', '๊ตฌ์„ฑ์š”์†Œํ™”')


VSC ์ƒ์‚ฐ์„ฑ ๋†’์ด๊ธฐ

  • VSC์—์„œ 'htmltagwrap' extension์„ ์„ค์น˜ํ•˜๋ฉด alt + w๋กœ ํ…์ŠคํŠธ์— ํƒœ๊ทธ๋ฅผ ๊ฐ์Œ€ ์ˆ˜ ์žˆ๋‹ค! (๊ฐ€๋” ๊นจ์ง€๊ธฐ๋„ ํ•œ๋‹ค) ์ƒ์‚ฐ์„ฑ UP! ๐Ÿ™Œ๐Ÿป
  • VSC shorcuts ์ต์ˆ™ํ•ด์ง€์ž. ์˜ค๋Š˜ ๋ฐฐ์šด ๋‹จ์ถ•ํ‚ค ์ค‘ ๋‚˜ํ•œํ…Œ ์œ ์šฉํ–ˆ๋˜ ๊ฑด, ๋‹จ์–ด ๋‹จ์–ด ์„ ํƒํ•˜๋ ค๋ฉด alt ๋ˆ„๋ฅธ ์ฑ„๋กœ ๋”๋ธ” ํด๋ฆญ ๋”๋ธ” ํด๋ฆญํ•˜๋ฉด ๋˜๊ณ ,
    ์ด๋Ÿฐ ์‹์œผ๋กœ ์—ฌ๋Ÿฌ ํ•ญ๋ชฉ ํ•œ๋ฒˆ์— ์ปค์„œ ์žก์•„์„œ ์ž…๋ ฅํ•˜๊ณ  ์‹ถ์„ ๋•Œ๋Š” alt + shift ๋ˆ„๋ฅธ ์ฑ„๋กœ ๋“œ๋ž˜๊ทธํ•˜๋ฉด ๋œ๋‹ค๋Š” ๊ฑฐ์˜€๋‹ค.
  • ํ•œ ์ค„ ์‚ญ์ œํ•˜๋Š” ๋‹จ์ถ•ํ‚ค์ธ shift + delete๋„ ์œ ์šฉ!

entity code

  • ์—”ํ‹ฐํ‹ฐ ์ฝ”๋“œ ๋Š” ๋ฌธ์„œ ๋‚ด์šฉ๊ณผ ์˜ˆ์•ฝ ๋ฌธ์ž(ํŠน์ˆ˜ ๋ฌธ์ž)๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค. ๋„์–ด์“ฐ๊ธฐ ๊ณต๋ฐฑ์„ ๋‚˜ํƒ€๋‚ด๋Š”&nbsp ๊ฐ™์€ ๊ฒƒ!
  • ๊ฐ•์‚ฌ๋‹˜์ด Notion ๊ด€๋ จ chrome extension์„ ๊ฐœ๋ฐœํ•  ๋•Œ ๋…ธ์…˜ ์ฝ”๋“œ๋ธ”๋Ÿญ ๋‚ด์˜ ๊ณต๋ฐฑ์ด ์ „๋ถ€ &nbsp๋ผ์„œ ์• ๋จน์œผ์…จ๋‹ค๋Š” ์ผํ™”๊ฐ€ ํฅ๋ฏธ๋กœ์› ๋‹ค.

  • <section>๋งˆ๋‹ค ํ•ญ์ƒ heading ํƒœ๊ทธ๊ฐ€ ๋“ค์–ด๊ฐ€์•ผ ํ•œ๋‹ค! ์˜ค๋Š˜๋„ ์‹œ๋งจํ‹ฑ HTML์— ๋Œ€ํ•ด ์ƒˆ๋กœ์šด ์ •๋ณด๋ฅผ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค :)
  • <footer>์•ˆ์—์„œ๋Š” ๊ตฌํš์„ ๋‚˜๋ˆŒ ์ˆ˜ ์—†๋‹ค.
  • ํผ์—์„œ input๋œ ๊ฐ’์€ FE์™€ BE์—์„œ ๊ฒ€์ฆ์„ ๊ฑฐ์ณ์•ผ ํ•œ๋‹ค. ์ด๋ฏธ์ง€๋กœ๋„ ํ•ดํ‚น ์ฝ”๋“œ๊ฐ€ ๋“ค์–ด์˜จ๋‹ค.

<table> ์ดํ•ดํ•˜๊ธฐ

      table,
      tr,
      th,
      td {
        border: solid 1px black;
        border-collapse: collapse;
      }
  • <table>์—์„œ border-collapse ํ”„๋กœํผํ‹ฐ๋Š” ํ‘œ ํ…Œ๋‘๋ฆฌ(border)๊ฐ€ ๋ถ„๋ฆฌ(separate)๋ ์ง€ ์ƒ์‡„(collapse)๋ ์ง€๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค.
  • colspan ํ—ท๊ฐˆ๋ฆฌ์ง€ ๋ง๊ธฐ! ์ขŒ์šฐ column(์—ด)๋“ค์„ ํ•ฉ์น˜๋Š” ๊ฒƒ. column ๊ฒฝ๊ณ„์„ ์ด ๋ฌด๋„ˆ์ง„๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ธฐ.
    rowspan์€ ์œ„์•„๋ž˜ row(ํ–‰)๋“ค์„ ํ•ฉ์น˜๋Š” ๊ฒƒ.
  • <thead>,<tbody>,<tfoot>์€ ์ž์ฒด ๊ธฐ๋Šฅ์€ ์—†์ง€๋งŒ JavaScript์—์„œ ์ปจํŠธ๋กคํ•  ๋•Œ ์“ฐ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ผญ ๋„ฃ์–ด์ฃผ์ž. ์ƒ๋žตx!
  • <colgroup>์œผ๋กœ column๋“ค์„ ๊ทธ๋ฃนํ•‘ํ•ด์„œ ๊พธ๋ฉฐ์ค„ ์ˆ˜ ์žˆ๋‹ค.
  • ๊ถ๊ธˆํ•œ ํƒœ๊ทธ๋“ค์€ html cheatsheet๋ฅผ ํ™œ์šฉํ•˜์ž.

[ ๊ฐœ์„  ๋ฐ ํšŒ๊ณ  ]

์˜ค๋Š˜ ์ˆ˜์—…์„ ๋“ฃ๋˜ ์ค‘ block ์š”์†Œ์™€ inline ์š”์†Œ๋“ค์„ ์‚ดํŽด๋ณด๋‹ค๊ฐ€ ์ฒซ๋‚  ๊ณผ์ œํ•˜๋ฉด์„œ ์• ๋จน์—ˆ๋˜ <dl>,<dt>,<dd>,<address>๋„ ๊ธฐ๋ณธ display๊ฐ’์ด block์ด๋ผ์„œ ์ค„๋ฐ”๊ฟˆ์ด ๋˜์—ˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๊นจ๋‹ซ๊ฒŒ ๋˜์—ˆ๋‹ค. inline-block์œผ๋กœ ๋ฐ”๊พธ๋ฉด ๋˜๊ฒ ๊ตฌ๋‚˜ ์‹ถ์—ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์ƒ๊ฐ๋‚œ ๊น€์— footer ํ•˜๋‹จ ๋ถ€๋ถ„์„ ์ˆ˜์ •ํ•ด๋ณด์•˜๋‹ค.

dd::after {
  content: "|";
  margin: 0 6px;
}
  • ::after๋„ ๊ถ๊ธˆํ–ˆ๋Š”๋ฐ ์˜ค๋Š˜ ๋งˆ์นจ ๊ฐ€์ƒ์š”์†Œ ์…€๋ ‰ํ„ฐ(pseudo-element selector)๋ฅผ ๋ฐฐ์›Œ์„œ ๊ณ ์นœ <dd> ์˜†์— ๋ฐ”๋กœ ์จ๋จน์—ˆ๋‹ค! ์‚ฌ์šฉ ์˜ˆ์‹œ๋กœ ์˜ฌ๋ ค์ฃผ์‹  ์ฝ”๋“œ๊ฐ€ ๋„ˆ๋ฌด ๋„์›€๋˜์—ˆ๋‹ค โœจ ์žฌ๋ฐŒ๋‹น ๐Ÿ˜†
  • ์ „์—๋Š” ์ €๊ฑฐ ํ•˜๋ ค๊ณ  <div class="divider">๋กœ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ... ๊ฒธ์‚ฌ๊ฒธ์‚ฌ <div> ์ค„์ด๊ธฐ์˜ ํŒ์„ ๋˜ ์–ป๊ฒŒ ๋˜์—ˆ๋‹ค :)
  • <main>๊ณผ <footer> ์ƒ๋‹จ๊นŒ์ง€๋Š” ์ฒซ๋‚  ํ•œ๊ฑฐ๋ผ ๋•์ง€๋•์ง€ <div>๋ฅผ ์ผ์ง€๋งŒ ํ•˜๋‹จ๋งŒํผ์€ ์•ˆ ์จ๋ณด๋ ค๊ณ  ์• ์ผ๋‹ค.
  • <dl>์—์„œ ์ค„๋ฐ”๊ฟˆ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ชจ๋ฅด๊ฒ ์–ด์„œ ๊ทธ๋ƒฅ max-width๋กœ ์•„๋žซ์ค„๋กœ ๋‚ด๋ ค๊ฐ€๊ฒŒ ํ–ˆ๋‹ค. ๋˜ copyright ๋ถ€๋ถ„์€ float๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. ์ด์ œ ๋งˆํฌ์—…๊นŒ์ง€๋Š” ์–ด๋Š์ •๋„ ์ดํ•ด๋๋Š”๋ฐ ์•„์ง css ์‚ฌ์šฉ์ด ๋ฏธ์ˆ™ํ•œ ๊ฒƒ ๊ฐ™๋‹ค. ๊ณ„์† ๋ฐœ์ „ํ•  ๊ฒƒ์ด๋‹ค. (โ—'โ—ก'โ—)

> ์ฐธ๊ณ ์ž๋ฃŒ

1)https://developer.mozilla.org/ko/docs/Web/API/Document_Object_Model/Introduction DOM
2)https://wit.nts-corp.com/2019/03/27/5552 shadow DOM
3)https://developer.mozilla.org/ko/docs/Web/HTML/Element/footer
4)https://developer.mozilla.org/ko/docs/Web/CSS/border-collapse ํ‘œ ํ…Œ๋‘๋ฆฌ ์ƒ์‡„
5)https://developer.mozilla.org/ko/docs/Web/HTML/Element/colgroup

profile
FE ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๊ธฐ ์œ„ํ•œ ์ถ”์ง„๋ ฅ์„ ์–ป๋Š” ์ค‘

2๊ฐœ์˜ ๋Œ“๊ธ€

comment-user-thumbnail
2021๋…„ 11์›” 3์ผ

CSS ๊ณ ์ˆ˜๊ฐ€ ๋˜๋Š” ๋‚ ๊นŒ์ง€,,๐Ÿคฆโ€โ™‚๏ธ

1๊ฐœ์˜ ๋‹ต๊ธ€