[Front-end๐Ÿฆ] #2 HTML ์ •๋ฆฌ!

๋˜์ƒยท2021๋…„ 11์›” 1์ผ
1

front-end

๋ชฉ๋ก ๋ณด๊ธฐ
6/58
post-thumbnail

์ฒซ ์ •๊ทœ ์ˆ˜์—…๋‚ ! 1์ผ 1 ์ปค๋ฐ‹, ์•ž์œผ๋กœ ๋ฐฐ์šธ ๋‚ด์šฉ๊ณผ ์ง„ํ–‰ํ•  ํ”„๋กœ์ ํŠธ, ์ˆ˜์—… ์ฃผ์˜ ์‚ฌํ•ญ์„ ๋จผ์ € ๋“ค์—ˆ๋‹ค. ์˜ค๋Š˜์€ HTML ๊ธฐ์ดˆ์— ๋Œ€ํ•ด์„œ ๋ฐฐ์› ๊ณ , ์ธํ”„๋Ÿฐ์œผ๋กœ ์˜ˆ์Šตํ•œ #1.5 HTML ์™€ ๊ฒน์น˜๋Š” ๋‚ด์šฉ์ด ์žˆ์–ด์„œ ์ •๋ฆฌํ•˜๋ฉด์„œ emmet ๋ฌธ๋ฒ•์ด๋‚˜ ๋‹ค์–‘ํ•œ ์ฐธ๊ณ  ์ž๋ฃŒ ๋“ฑ์œผ๋กœ ๋ณด์ถฉํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ๊ฐ„์ด์—ˆ๋‹ค.

html cheat sheet ๋„ ์•ž์œผ๋กœ ์ฐธ๊ณ ํ•˜๋ฉด ์ข‹์„๋“ฏ.



0. Web ์ ‘์† ์ ˆ์ฐจ

client - network - router - DNS (ip ์ฐพ์•„์˜ด)
client - network - router - ์„œ๋ฒ„ (ํ•ด๋‹น ํŽ˜์ด์ง€ ๊ฐ€์ ธ์˜ด) (-> ๋ฐฉํ–ฅ : request, <- ๋ฐฉํ–ฅ : response )

1. VSCode ํ™˜๊ฒฝ์„ค์ •

ํ™˜๊ฒฝ์„ค์ •

1-1. HTML ์ž๋™์™„์„ฑ

  1. ctrl + P
  2. >snippet
  3. Configure User snippets
  4. html.json ์ˆ˜์ •

1-2. Live Server extension ์„ค์น˜

a ํƒœ๊ทธ์˜ download ์†์„ฑ ๊ฐ™์€ ๊ฒƒ๋“ค์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”.


1-3. github ์„ค์ •

1. repository ์ƒ์„ฑ, ํŒŒ์ผ ์—…๋กœ๋“œ

github repository

2. github.io ์—์„œ ์›นํŽ˜์ด์ง€ ๋™์ž‘ํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ

Settings > Pages > branch: main / root > save




2. HTML (1101)

์ˆ˜์—… ์ž๋ฃŒ๋กœ ์ œ๊ณตํ•ด์ฃผ์‹  ์™„๋ฒฝ ์ •๋ฆฌ ๊ฐ€์ด๋“œ. (์ถœ์ฒ˜ - weniv)

2-1. emmet ๋ฌธ๋ฒ•

์•Œ์•„๋‘๋ฉด ๋น ๋ฅด๊ฒŒ ์ฝ”๋“œ๋ฅผ ์งค ์ˆ˜ ์žˆ์Œ.

emmet-cheet-sheet

๋ฌธ๊ตฌ๋ฅผ ์“ฐ๊ณ  tab

h1{hello world} <!-- h1 -->
h1+p <!-- h1, p ์ƒ์„ฑ๋จ -->
h1{hello}*10 <!-- 10๊ฐœ ์ƒ์„ฑ -->
h1#one <!-- id="one" -->
h1.one <!-- class="one" --> 
<br>
table>(tr>(td*4))*3 <!-- ํ–‰ 3๊ฐœ ์—ด 4๊ฐœ ์ƒ์„ฑ -->
lorem <!-- lorem ipsum -->
lorem*3
lorem5 <!-- 5 ๋‹จ์–ด๋งŒ ๋‚˜์˜ด -->
img:z <!-- img ์†์„ฑ์ด ๋” ๋งŽ์€ -->
<br>
a[href="www.naver.com"]
a[a="value1" b="value2" c=1]
h1.one.two#three <!-- class, id ์ง€์ • -->
h$*6{hello world} <!-- $๋ณ€์ˆ˜ -> h1~h6 ์ „๋ถ€ ๋‚˜์˜ด. -->

ํ•œ๊ธ€ ipsum ์ƒ์„ฑ๊ธฐ


2-2. HTML Living Standards

ํ‘œ์ค€!

HTML living standards

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

  • sementic์„ ์ž˜ ์ง€ํ‚ค์ž.

header, nav, main, footer

  • div๋Š” ์ตœ๋Œ€ํ•œ ์ž์ œํ•˜์ž.
  • article์€ ํ•˜๋‚˜ ํ•˜๋‚˜๊ฐ€ ๋…๋ฆฝ์ ์ด์–ด์•ผํ•จ. section์€ ์—ฐ๊ด€์„ฑ์ด ์žˆ๋Š” ๊ฒƒ์„ ๋ฌถ๋Š”๋‹ค.
  • h1 ๊ฐ™์€ ํƒœ๊ทธ๋ฅผ ๋‹จ์ˆœํžˆ '๊ธ€์ž๋งŒ ํฌ๊ฒŒ' ํ‘œ์‹œํ•˜๋Š”๋ฐ ์ด์šฉํ•˜์ง€ ๋ง์ž. ์‹ค์ œ ์ฝ”๋”ฉ ํ• ๋•Œ๋Š” ๊ธ€์”จ ์Šคํƒ€์ผ์„ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  ๋“ค์–ด๊ฐ„๋‹ค!

2-3. HTML ์ฃผ์š” ํƒœ๊ทธ

<h1>~<h6>
<p></p>
<br> 
<hr>
<a href="๊ฒฝ๋กœ">
<b>, <strong> <!-- bold / + ๊ฐ•์กฐ -->
<i>, <em> <!-- italic / + ๊ฐ•์กฐ -->
<mark> <!-- highlight -->
<abbr title="National Aeronautics and Space Administration">NASA</abbr> <!-- abbr : ์ค„์ž„๋ง -->
<sup>, <sub> <!-- ์œ—์ฒจ์ž ์•„๋žซ์ฒจ์ž -->
<blockquote> <!-- ์ธ์šฉ -->
<span> <!-- line ๊ตฌ์กฐ. span ์•ˆ์— list ๊ตฌ์กฐ๋ฅผ ๋„ฃ์ง€ ์•Š๋Š”๋‹ค. -->
kbd : ํ‚ค๋ณด๋“œ
pre : ์žˆ๋Š” ๊ทธ๋Œ€๋กœ
code : ์ฝ”๋“œ๋ธ”๋ก
cite : ์ธ์šฉ

a ํƒœ๊ทธ ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ์–ด๋–ค ํŽ˜์ด์ง€์— ์ ‘์†ํ–ˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณด์•ˆ์ƒ ์ด์Šˆ ์กด์žฌ.
๋””์ž์ธ ์ ์ธ ๋ชฉ์ ์˜ ๊ฐœํ–‰์—๋Š” span์„ ์‚ฌ์šฉํ•˜์ž.


2-4. ์ฝ˜ํ…์ธ  ๊ทธ๋ฃน ํƒœ๊ทธ

ol, ul, li
dl, dt, dd
div <!-- ๋ฌถ์–ด์„œ ์†์„ฑ์„ ์ฃผ๊ธฐ ์œ„ํ•ด -->
figure, figcaption <!-- figure ์•ˆ์— figcaption์„ ๋„ฃ์–ด์„œ ์ด๋ฏธ์ง€์™€ ์บก์…˜์ด ์—ฐ๊ฒฐ๋˜๋„๋ก -->

2-5. ๋ฏธ๋””์–ด ํƒœ๊ทธ

๋ฏธ๋””์–ด ์‚ฌ์šฉ ์‹œ, ์ƒ์—…์  ์šฉ๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ / ์ถœ์ฒ˜ ์•ˆ ๋ฐํ˜€๋„ ๋จ ํ™•์ธํ•˜๊ธฐ. audio, video ๊ฐ™์€ ์ŠคํŠธ๋ฆฌ๋ฐ ์„œ๋น„์Šค๋ฅผ ํ•˜๋ ค๋ฉด ๊ต‰์žฅํ•œ ํŠธ๋ž˜ํ”ฝ์œผ๋กœ ์—„์ฒญ๋‚œ ๐Ÿ’ฐ์ด ๋‚˜๊ฐˆ์ง€๋„ ๋ชจ๋ฅด๋‹ˆ ์ฃผ์˜ํ•˜์ž!

img <!-- srcset="a.jpg, b.jpg" ๋กœ ์—ฌ๋Ÿฌ ์ด๋ฏธ์ง€ ๋ฌถ์„ ์ˆ˜ ์žˆ์Œ. ํŠน์ • ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋ฉด A, ์•„๋‹ˆ๋ฉด B ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ์„ค์ • ๊ฐ€๋Šฅ. -->
iframe <!-- ํ•œ ํŽ˜์ด์ง€ ๋‚ด์—์„œ ๋‹ค๋ฅธ ์›นํŽ˜์ด์ง€๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ  ์‹ถ์„ ๋•Œ. -->
<!-- ๊ทผ๋ฐ ์‚ฌ์šฉ์ž ์ž…๋ ฅ ๋“ฑ์„ ๋ชจ๋‹ˆํ„ฐ๋ง ํ•  ์ˆ˜ ์žˆ์–ด์„œ ๋ณด์•ˆ ์ƒ ๋ง‰์•„๋‘๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. iframe injection ๊ณต๊ฒฉ๋„ ๊ฐ€๋Šฅ-->
audio
video
<img
    width="200px"
    srcset="img/logo_1.png 300w,
            img/logo_2.png 600w,
            img/logo_3.png 700w"
<!-- ํ™”๋ฉด width๊ฐ€ 300 ๋ฏธ๋งŒ์ด๋ฉด 1 / ~600 2 / ~700 3 -->
    src="a.jpg"
    alt="test">



3. HTML (1102)

3-1. Sementic ํ™•์‹คํ•˜๊ฒŒ!

์•„๋ž˜์™€ ๊ฐ™์€ ๊ณณ๋“ค์„ ์ด์šฉํ•ด์„œ ์–ด๋–ค ํƒœ๊ทธ๋ฅผ ์ด์šฉํ•ด๋„ ๋˜๋Š”์ง€, ์•ˆ๋˜๋Š”์ง€ ๋“ฑ์„ ํŒ๋‹จ ํ•  ์ˆ˜ ์žˆ๋‹ค.

HTML docs, Can I Use, Validator


3-2. form

1. url

form tag ๋ฅผ ์ดํ•ดํ•˜๊ธฐ์— ์•ž์„œ์„œ url์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ํ•„์š”ํ•˜๋‹ค. protocol, host(DNS, port) ์— ๋Œ€ํ•ด์„œ๋Š” #1.5 HTML ์—์„œ ํ•œ๋ฒˆ ์ •๋ฆฌ๋ฅผ ํ–ˆ์—ˆ๊ณ , ์ด๋ฒˆ์—๋Š” ๊ทธ ๋’ค์— ๋ถ™๋Š” ๊ฒƒ์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•œ๋‹ค.

? query=string /* get ๋ฐฉ์‹์œผ๋กœ ํ˜ธ์ถœํ•˜๋ฉด ๋’ค์— ๋ถ™๋Š” ์ •๋ณด */
#hash /* ๋ฌธ์„œ ๋‚ด์—์„œ ํŠน์ • id๋ฅผ ๊ฐ€์ง„ ๊ฐœ์ฒด๋กœ ์ด๋™ํ•  ๋•Œ ๋ถ™๋Š” ์ •๋ณด */
/* ํ•œ๊ธ€์ด ๋ถ™๋Š” ๊ฒฝ์šฐ, url encoding ์œผ๋กœ ์ฒ˜๋ฆฌ๋จ. */

query=string ์˜ ๊ฒฝ์šฐ query: string ํ˜•ํƒœ๋กœ parsing ๋˜์–ด์„œ ์„œ๋ฒ„์— ์ „๋‹ฌ๋œ๋‹ค. post ๋ฐฉ์‹์˜ ๊ฒฝ์šฐ url์—๋Š” ๋“œ๋Ÿฌ๋‚˜์ง€ ์•Š๊ณ  ์ •๋ณด๊ฐ€ ์„œ๋ฒ„๋กœ๋งŒ ์ „์†ก๋œ๋‹ค.

2. form tag

action : form ์ œ์ถœ ์‹œ ์–ด๋””๋กœ ์ด๋™ํ• ์ง€
method : form data ๋ฅผ ์„œ๋ฒ„์— ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ๋ณด๋‚ผ์ง€ (get, post)

input์—๋Š” ์—ฌ๋Ÿฌ type์ด ์žˆ๋‹ค.

<form action="./008.html" method="get">
    <input type="text" name="id" id="">
    <input type="password" name="pw" id="">
    <button type="submit">๋กœ๊ทธ์ธ</button>
</form>

์œ„์˜ ์ฝ”๋“œ์˜ ๊ฒฝ์šฐ submit ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ./008.html์— ?id=ddosang&pw=1234 ์ •๋ณด๊ฐ€ ๋ถ™๋Š”๋‹ค.

radio, checkbox ์˜ ๊ฒฝ์šฐ name ์„ ๊ธฐ์ค€์œผ๋กœ ํ•œ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์ธ๋‹ค.

3. label

label ์ฝ”๋“œ๋Š” input ์— ๋Œ€ํ•ด ๋ณด์—ฌ์ฃผ๋Š” ํƒœ๊ทธ๋ฅผ input์— ๋ฌถ์–ด์ฃผ๋Š” ์šฉ๋„๋กœ ์‚ฌ์šฉํ•œ๋‹ค. label์„ ๋ˆŒ๋Ÿฌ๋„ ํ•ด๋‹น input ์ฐฝ์ด ์ž‘๋™ํ•œ๋‹ค!

<!-- 1 -->
<label>
	์ด๋ฆ„ :
	<input type="text" name="name">
</label>
<!-- 2 -->
<label for="myName">์ด๋ฆ„ : </label>
<input type="text" name="name" id="myName">

์ด๋ฆ„์„ ์ž…๋ ฅํ•ด๋ณด์„ธ์š”!

4. select

<select name="device" id="myDevice">
    <option value="iphone" selected="selected">์•„์ดํฐ</option>
    <option value="galaxy">๊ฐค๋Ÿญ์‹œ</option>
    <option value="lg">์—˜์ง€ํฐ</option>
</select>

get์ธ ๊ฒฝ์šฐ action?device=iphone ์™€ ๊ฐ™์€ url์ด ์ƒ์„ฑ๋œ๋‹ค.


5. fieldset, legend

fieldset : input ๊ณผ ๊ฐ™์€ tag ๊ฐ€ ๋งŽ์•„์„œ ์˜์—ญ์„ ๋ถ„๋ฆฌํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ.
legend : input-label ์ฒ˜๋Ÿผ fieldset์˜ ์ •๋ณด๋ฅผ ๋‚˜ํƒ€๋ƒ„. fieldset์˜ ์ฒซ๋ฒˆ์งธ ์ž์‹์œผ๋กœ ์‚ฌ์šฉํ•ด์•ผํ•จ

<fieldset> 
    <legend>๊ฐœ์ธ์ •๋ณด</legend>
    <!-- input, select, ... tags -->
</fieldset>

7. button

์›ฌ๋งŒํ•˜๋ฉด input ๋Œ€์‹  ์ž์‹ ํƒœ๊ทธ๋ฅผ ๋„ฃ์–ด์„œ ๊พธ๋ฐ€ ์ˆ˜ ์žˆ๋Š” button ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์ž!! form ์•ˆ์˜ button์ด ์•„๋‹Œ ๊ฒฝ์šฐ์—๋Š” a ํƒœ๊ทธ๋ฅผ ์ด์šฉํ•˜๊ณ  ๋‚˜์ค‘์— ๊พธ๋ฏธ๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์Œ.

<button type = submit, reset, button title="์ œ์ถœ"> </button>

submit : ์ œ์ถœ (default)
reset : ํผ ์ดˆ๊ธฐํ™”
button : ๊ธฐ๋Šฅ ์—†๋Š” ๋ฒ„ํŠผ

8. progress

progress bar

<progress value="0.85" max="1">
85%
</progress>



4. HTML (1103)

4-1. table

1. th(table heading), tr(table row), td(table data)

<table>
	<!-- caption์„ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค. -->
    <caption>
        hello ์ฑ… ํŒ๋งค๋Ÿ‰ ํ‘œ
    </caption>
    <!-- colgroup์œผ๋กœ column์— ์†์„ฑ ์ค„ ์ˆ˜ ์žˆ๋‹ค. -->
    <colgroup>
        <col class="๊ตฌ๋ถ„">
        <col class="์ด๋ฆ„">
        <col class="๊ฐ€๊ฒฉ">
        <col class="ํŒ๋งค๋Ÿ‰">
    </colgroup>
    <thead>
        <tr>
            <th>๊ตฌ๋ถ„</th>
            <th>์ด๋ฆ„</th>
            <th>๊ฐ€๊ฒฉ</th>
            <th>ํŒ๋งค๋Ÿ‰</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>1</td>
            <td>hello</td>
            <td>1000</td>
            <td>1</td>
        </tr>
        <tr>
            <td>2</td>
            <td>hello2</td>
            <td>2000</td>
            <td>2</td>
        </tr>
        <tr>
            <td>3</td>
            <td>hello3</td>
            <td>3000</td>
            <td>3</td>
        </tr>
    </tbody>
    <tfoot>
        <tr>
            <td colspan="3">์ด ํŒ๋งค๋Ÿ‰</td>
            <td>6</td>
        </tr>
    </tfoot>
</table>

2. rowspan, colspan

3. thead, tbody, tfoot

๊ตฌํš์„ ๋‚˜๋ˆˆ๋‹ค. ๋‚˜์ค‘์— js๋กœ ์ปจํŠธ๋กค ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ผญ ๋„ฃ์–ด์ฃผ์ž!

4. caption, colgroup

5. scope

th scope="col"
th scope="row"

4-2. block / inline

block : ํ™”๋ฉด์˜ ๊ฐ€๋กœ ํญ ์ „์ฒด๋ฅผ ์ฐจ์ง€ํ•จ.
inline : ์ž์‹ ์˜ ํฌ๊ธฐ๋งŒํผ๋งŒ ์˜์—ญ์„ ๊ฐ€์ง. (ex. span, strong) inline ์•ˆ์— block์„ ๋„ฃ์œผ๋ฉด ์•ˆ๋จ!!!
inline-block

block, inline




5. ์˜๋ฌธ์ 

1. span ์•ˆ์— ul ์‚ฌ์šฉ XXX

๋‘๊ฐœ์˜ ul์„ ๊ฐ€๋กœ๋กœ ๋ถ™์ด๊ณ  ์‹ถ์–ด์„œ ์ด๋ ‡๊ฒŒ ์ผ๋Š”๋ฐ, ์ด๋ ‡๊ฒŒ๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ํ•œ๋‹ค.

<span>
    <ul>
   	    <li>Home</li>
        <li>์ฑ„์šฉ์ •๋ณด</li>
        <li>์บ๋ฆญํ„ฐ ์†Œ๊ฐœ</li>
    </ul>
</span>
<span>
    <ul>
        <li>About</li>
        <li>์ปค๋ฆฌํ˜๋Ÿผ</li>
        <li>์ž๋ฃŒ์‹ค</li>
    </ul>
</span>

2. ๋ญ”๊ฐ€.. ์ˆ˜์—…์„ ๋†“์น˜์ง€ ์•Š๊ณ  ๊ณ„์† ์—ด์‹ฌํžˆ ๋“ค์—ˆ๋Š”๋ฐ ๋‚˜๋งŒ 003.html์ด ์—†๋‹ค.. ๊ทธ๋ƒฅ ํ•˜๋‚˜์”ฉ ๋•ก๊ฒจ์„œ ๋งŒ๋“ค์—ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์‹œ๊ฐ„์ด ๊ฐˆ์ˆ˜๋ก ํŒŒ์ผ๊นŒ์ง„ ๋งŒ๋“ค์ง€ ์•Š๊ณ  ์ •๋ฆฌ๋กœ ๋๋‚ผ ์ˆ˜ ์žˆ๋Š” ๋‚ด์šฉ์ด ๋งŽ์•„์„œ ์ ์  ์ค„์–ด๋“œ๋Š” ์ค‘...

3. radio, checkbox ์˜ ๊ฒฝ์šฐ ul li ๋กœ label, input ํƒœ๊ทธ๋ฅผ ๊ฐ์‹ธ๊ธฐ๋„ ํ•˜๋Š”์ง€?

๊ฐ€๋Šฅํ•˜๋‹ค!! ์ฐพ์•„๋ณด๋‹ˆ ์ด๋ ‡๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ์˜ˆ์‹œ๋“ค์ด ๊ฝค ๋‚˜์™”๋‹ค.

profile
0๋…„์ฐจ iOS ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค.

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