Frontend/HTML&CSS

21 HTML Tips You Must Know About(๋ฌด์กฐ๊ฑด ์•Œ์•„์•ผ ํ•˜๋Š” 21๊ฐœ์˜ HTML ํŒ)

Seyun(Marco) 2024. 4. 13. 19:53
728x90

๐Ÿ’ก ์›๋ณธ๊ธ€: https://dev.to/devshefali/21-html-tips-you-must-know-about-55j7

 

21 HTML Tips You Must Know About

In this post, Iโ€™ll share 21 HTML Tips with code snippets that can boost your coding skills. Letโ€™s...

dev.to

์ด ๊ฒŒ์‹œ๋ฌผ์—์„œ๋Š” ์ฝ”๋”ฉ ๊ธฐ์ˆ ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ ์กฐ๊ฐ๊ณผ ํ•จ๊ป˜ 21๊ฐ€์ง€ HTML ํŒ์„ ๊ณต์œ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿผ ๋ฐ”๋กœ ๋›ฐ์–ด๋“ค์–ด๊ฐ€ ๋ณผ๊นŒ์š”.๐Ÿš€

์—ฐ๋ฝ์ฒ˜ ๋งํฌ ๋งŒ๋“ค๊ธฐ

HTML์„ ์‚ฌ์šฉํ•˜์—ฌ ํด๋ฆญ์ด ๊ฐ€๋Šฅํ•œ ์ด๋ฉ”์ผ, ์ „ํ™” ํ†ตํ™” ๋ฐ SMS ๋งํฌ๋ฅผ ๋งŒ๋“ค์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

<!-- Email link -->
<a href="mailto:name@example.com"> Send Email </a>

<!-- Phone call link -->
<a href="tel:+1234567890"> Call Us </a>

<!-- SMS link -->
<a href="sms:+1234567890"> Send SMS </a>

์ ‘์„(Collapse)์ˆ˜ ์žˆ๋Š” ์ฝ˜ํ…์ธ  ๋งŒ๋“ค๊ธฐ

์›นํŽ˜์ด์ง€์—์„œ ์ ‘์„ ์ˆ˜ ์žˆ๋Š” ์ฝ˜ํ…์ธ ๋ฅผ ํฌํ•จํ•˜๋ ค๋Š” ๊ฒฝ์šฐ <details> ๋ฐ <summary> ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

<details> ํƒœ๊ทธ๋Š” ์ˆจ๊ฒจ์ง„ ์ฝ˜ํ…์ธ ์— ๋Œ€ํ•œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ˜๋ฉด, <summary> ๋Š” ํ•ด๋‹น ์ฝ˜ํ…์ธ ์˜ ํ‘œ์‹œ ์—ฌ๋ถ€๋ฅผ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” ํด๋ฆญ ๊ฐ€๋Šฅํ•œ ๋ผ๋ฒจ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

<details>
  <summary>Click to expand</summary>
  <p>This content can be expanded or collapsed.</p>
</details>

์˜๋ฏธ์ ์ธ(Semantic) ์š”์†Œ ํ™œ์šฉ

์›น์‚ฌ์ดํŠธ์— ๋Œ€ํ•ด ๋น„์˜๋ฏธ์ ์ธ ์š”์†Œ๋ณด๋‹จ ์˜๋ฏธ์ ์ธ(Semantic)ํ•œ ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”. ์ฝ”๋“œ๋ฅผ ์˜๋ฏธ์žˆ๊ฒŒ ๋งŒ๋“ค๊ณ  ๊ตฌ์กฐ, ์ ‘๊ทผ์„ฑ ๋ฐ SEO๋ฅผ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.

From ์š”์†Œ ๊ทธ๋ฃนํ™”

<fieldset> ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Form์˜ ๊ด€๋ จ ์š”์†Œ๋ฅผ ๊ทธ๋ฃนํ™” ํ•˜๊ณ  <legned> ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ <fieldset> ์ œ๋ชฉ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

์ด๋Š” ํšจ์œจ์ ์œผ๋กœ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ Form์„ ๋งŒ๋“œ๋Š”๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

<form>
   <fieldset>
      <legend>Personal details</legend>
      <label for="firstname">First name:</label>
      <input type="text" id="firstname" name="firstname" />
      <label for="email">Email:</label>
      <input type="email" id="email" name="email" />
      <label for="contact">Contact:</label>
      <input type="text" id="contact" name="contact" />
      <input type="button" value="Submit" />
   </fieldset>
</form>

๋“œ๋กญ๋‹ค์šด ๋ฉ”๋‰ด ๊ฐœ์„ 

<optgroup> ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ HTML์˜ <select> ํƒœ๊ทธ์˜ ์˜ต์…˜์„ ๊ทธ๋ฃนํ™” ํ• ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Š” ํฐ ๋“œ๋กญ๋‹ค์šด ๋ฉ”๋‰ด๋‚˜ ๊ธด ์˜ต์…˜ ๋ชฉ๋ก์œผ๋กœ ์ž‘์—…ํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

<select>
   <optgroup label="Fruits">
      <option>Apple</option>
      <option>Banana</option>
      <option>Mango</option>
   </optgroup>
   <optgroup label="Vegetables">
      <option>Tomato</option>
      <option>Broccoli</option>
      <option>Carrot</option>
   </optgroup>
</select>

Video Presentation ๊ฐœ์„ 

poster ์†์„ฑ์„ ์‚ฌ์šฉํ•ด ๋น„๋””์˜ค๊ฐ€ ์žฌ์ƒ๋  ๋•Œ ๊นŒ์ง€ ์ด๋ฏธ์ง€๋ฅผ ํ‘œ์‹œํ• ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

<video controls poster="image.png" width="500">
  <source src="video.mp4" type="video/mp4 />
</video>

๋‹ค์ค‘ ์„ ํƒ ์ง€์›

multiple ์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด <input> , <select> ์˜ ๋‘๊ฐœ ์ด์ƒ์˜ ํŒŒ์ผ์„ ์„ ํƒ ๋ฐ ์˜ต์…˜์„ ์„ ํƒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

<input type="file" multiple />
<select multiple>
    <option value="java">Java</option>
    <option value="javascript">JavaScript</option>
    <option value="typescript">TypeScript</option>
    <option value="rust">Rust</option>
</select>

์œ„/์œ„๋ž˜ ์ฒจ์ž ํ‘œ์‹œ

<sub>, <sup> ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ…์ŠคํŠธ๋ฅผ ๊ฐ๊ฐ ์•„๋ž˜ ์ฒจ์ž์™€ ์œ„ ์ฒจ์ž๋กœ ํ‘œ์‹œํ• ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์šด๋กœ๋“œ ๋งํฌ ์ƒ์„ฑ

download ์†์„ฑ์„ <a> ํƒœ๊ทธ์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋ฉด ๋งํฌ๋ฅผ ํด๋ฆญํ•  ๋•Œ ๋งํฌ๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ๋Œ€์‹ ์— ๋‹ค์šด๋กœ๋“œ ํ•จ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

<a href="document.pdf" download="document.pdf"> Download PDF </a>

์ƒ๋Œ€ ๋งํฌ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ URL ์ •์˜

<base> ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›นํŽ˜์ด์ง€์˜ ๋ชจ๋“  ์ƒํƒœ URL์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Š” ์›น ํŽ˜์ด์ง€์˜ ๋ชจ๋“  ์ƒํƒœ URL์— ๋Œ€ํ•œ ๊ณต์œ  ์‹œ์ž‘์ ์„ ์ƒ์„ฑํ•˜์—ฌ ๋ฆฌ์†Œ์Šค๋ฅผ ๋” ์‰ฝ๊ฒŒ ํƒ์ƒ‰ํ•˜๊ณ  ๋กœ๋“œํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

   


   Blogs
   Contact


์ด๋ฏธ์ง€ ๋กœ๋”ฉ ์ œ์–ด

<img> ํƒœ๊ทธ์— loading ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ด๋ฏธ์ง€ ๋กœ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ์–ดํ• ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ’์€ โ€œeagerโ€, โ€œlazyโ€, โ€œautoโ€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

<img src="picture.jpg" loading="lazy">

๋ฒˆ์—ญ ๊ธฐ๋Šฅ ๊ด€๋ฆฌ

transalate ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ˜ํ…์ธ ๋ฅผ ๋ธŒ๋ผ์šฐ์ €์˜ ๋ฒˆ์—ญ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

<p translate="no">
  This text should not be translated.
</p>

์ตœ๋Œ€ ์ž…๋ ฅ ๊ธธ์ด ์„ค์ •

maxlength ์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅ ํ•„๋“œ์— ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ๋ฌธ์ž ์ˆ˜๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

<input type="text" maxlength="4">

Setting Minimum Input Length ์ตœ์†Œ ์ž…๋ ฅ ๊ธธ์ด ์„ค์ •

minlength ์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ž…๋ ฅ ํ•„๋“œ์— ๋Œ€ํ•œ ์ตœ์†Œ ๋ฌธ์ž ์ˆ˜๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

<input type="text" minlength="3">

์ปจํ…์ธ  ํŽธ์ง‘ ํ™œ์„ฑํ™”

contenteditable ์†์„ฑ์„ ํ†ตํ•ด ์ฝ˜ํ…์ธ ๋ฅผ ํŽธ์ง‘ ํ•  ์ˆ˜ ์žˆ๋Š” ์—ฌ๋ถ€๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฅผ ํ† ์•ป ์‚ฌ์šฉ์ž๋Š” ์š”์†Œ ๋‚ด์˜ ์ฝ˜ํ…์ธ ๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

<div contenteditable="true">
   You can edit this content.
</div>

๋งž์ถค๋ฒ• ๊ฒ€์‚ฌ ์ œ์–ด

<input>, <textare>, ์ฝ˜ํ…์ธ  ํŽธ์ง‘ ๊ฐ€๋Šฅ ์š”์†Œ์—์„œ spellcheck ์†์„ฑ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ €์˜ ๋งž์ถค๋ฒ• ๊ฒ€์‚ฌ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™” ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

<input type="text" spellcheck="true"/>

์ ‘๊ทผ์„ฑ ๋ณด์žฅ

alt ์†์„ฑ์€ ์ด๋ฏธ์ง€๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ ๋Œ€์ฒด ํ…์ŠคํŠธ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์ ‘๊ทผ์„ฑ๊ณผ SEO๋ฅผ ๊ฐœ์„ ํ•˜๋ ค๋ฉด ํ•ญ์ƒ ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ ์„ค๋ช…์ ์ธ alt ์†์„ฑ์„ ํฌํ•จํ•˜์„ธ์š”.

<img src="picture.jpg" alt="Description for the image">

๋งํฌ์— ๋Œ€ํ•œ ๋Œ€์ƒ ๋™์ž‘ ์ •์˜

target ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งํฌ๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ํด๋ฆญํ•  ๋•Œ ํ‘œ์‹œ๋  ์œ„์น˜๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

<!-- Opens in the same frame -->
<a href="https://shefali.dev" target="_self">Open</a>

<!-- Opens in a new window or tab -->
<a href="https://shefali.dev" target="_blank">Open</a>

<!-- Opens in the parent frame -->
<a href="https://shefali.dev" target="_parent">Open</a>

<!-- Opens in the full body of the window -->
<a href="https://shefali.dev" target="_top">Open</a>

<!-- Opens in the named frame -->
<a href="https://shefali.dev" target="framename">Open</a>

์ถ”๊ฐ€ ์ •๋ณด ์ œ๊ณต

title ์†์„ฑ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์š”์†Œ ์œ„๋กœ ๋งˆ์šฐ์Šค๋ฅผ ๊ฐ€์ ธ๊ฐˆ ๋•Œ ํ•ด๋‹น ์š”์†Œ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

<p title="World Health Organization">WHO</p>

ํŠน์ • ํŒŒ์ผ ํ˜•์‹ ํ—ˆ์šฉ

accept ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„์—์„œ ํ—ˆ์šฉํ•˜๋Š” ํŒŒ์ผ ํ˜•์‹์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” <input> ํƒœ๊ทธ์™€ ๊ฐ™์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

<input type="file" accept="image/png, image/jpeg" />

๋น„๋””์˜ค ๋กœ๋”ฉ ์ตœ์ ํ™”

<video> ํƒœ๊ทธ์— preload ์†์„ฑ์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฉด ๋ณด๋‹ค ์›ํ™œํ•œ ์žฌ์ƒ์„ ์œ„ํ•ด ๋น„๋””์˜ค ํŒŒ์ผ์„ ๋” ๋น ๋ฅด๊ฒŒ ๋กœ๋”ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

<video src="video.mp4" preload="auto">
   Your browser does not support the video tag.
</video>

์˜ค๋Š˜ ์ค€๋น„ํ•œ๊ฑด ์ด๊ฒŒ ๋‹ค ์ž…๋‹ˆ๋‹ค.

๋„์›€์ด ๋˜์—ˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์ฝ์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ด์™€ ๊ฐ™์€ ๋” ๋งŽ์€ ์ฝ˜ํ…์ธ ๋ฅผ ๋ณด๋ ค๋ฉด ์—ฌ๊ธฐ๋ฅผ ํด๋ฆญํ•˜์„ธ์š”.

X(Twiiter)์—์„œ ์ €๋ฅผ ํŒ”๋กœ์šฐํ•˜์‹œ๋ฉด ์›น ๊ฐœ๋ฐœ์— ๋Œ€ํ•œ ์ผ์ผ ํŒ์„ ์–ป์„์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

 

728x90
728x90