Dev/SW Engineering

[HTML] HTML 태그 복습

HJChung 2020. 7. 21. 14:08

0. Start With..

HTML 요소 참고서

Document and Website Structure

더보기
  1. 몇 요소들은 대부분의 페이지에 공통적으로 적용될 것이란 걸 명심하세요 — 네비게이션 메뉴나 footer 컨텐츠처럼. 예를 들어 비즈니스를 위한 페이지라면, 당신의 연락처를 각각의 페이지의 footer에 보이도록 하는 것은 좋은 생각입니다. 모든 페이지에 공통적으로 포함하고 싶은 것을 적어보세요.
  2. 다음으로, 각 페이지의 구조를 간단한 스케치로 그리세요.아마 위의 우리의 간단한 웹사이트 같을 것입니다). 각 블럭의 기능을 적으세요.
  3. 이제 웹사이트에 포함시키길 원하는 (각 페이지에 공통적이지 않은) 다른 모든 컨텐츠를 brainstorm하세요 - 리스트에 모두 적어 내려가세요. 
  4. 다음으로, 이 모든 컨텐츠들을 그룹화 해 다른 페이지에서 어떤 부분들이 함께할 수 있을지 생각할 수 있습니다. 이것은 Card sorting이라는 기술과 매우 유사합니다.
  5. 이제 대략적인 사이트맵을 그려보세요 - 사이트의 각 페이지를 동그라미로 지정하고, 각 페이지 간 동작 흐름을 보여주기 위해 선을 그으세요. 홈페이지는 아마 가운데에 있고, 모두는 아니어도 대부분에 연결될 것 입니다; 작은 사이트 안의 대부분의 페이지는, 비록 예외는 있겠지만, 메인 네비게이션에서 사용할 수 있어야 합니다. 당신은 아마 이것들이 어떻게 보여져야 할지에 대한 설명도 적고 싶을 것입니다. 

 

1. Box를 나눌 줄 알자!

출처: https://www.youtube.com/watch?v=i0FN-OwJ7QI&list=PLv2d7VI9OotQ1F92Jp9Ce7ovHEsuRQB3Y&index=6

박스 모델의 중요성과 MDN의 Document_and_website_structure을 보기 전까지는 <div>만을 사용해서 무작위로 칸을 나누고 코딩했습니다. 

그러나 나중에 css를 위해서든, 앞으로의 작업의 편의성을 위해서라도 이렇게 (화면 상에서는 보이지 않는) 태그를 사용해서 영역을 나누어야 겠다고 생각했습니다. 

출처: https://www.youtube.com/watch?v=OoA70D2TE0A&list=PLv2d7VI9OotQ1F92Jp9Ce7ovHEsuRQB3Y&index=7

사용자에게 보여지지 않는 BOX, 내용이 없어도 보이는 ITEM

출처: https://www.youtube.com/watch?v=OoA70D2TE0A&list=PLv2d7VI9OotQ1F92Jp9Ce7ovHEsuRQB3Y&index=7

2. 여러가지 TAG들

1) Box vs Item

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
  <!-- Box vs Item -->
  <header></header>
  <footer></footer>
  <section></section>
  <div></div>
  <span></span>
  
  <h1>Hello</h1>
  <button></button>
</body>
</html>

 

2) <a> anchor tag

 

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
  <!-- a -->
  <a href='https://libertegrace.tistory.com/' 
     target=_blank>My Blog!</a>
</body>
</html>

3) Block vs Inline

Block은 한 줄에 하나의 태그가 배치되는 것을 말하고, inline은 충분한 공간이 있으면 다른 태그 옆에 배치가 가능한 것을 말합니다. 

출처: https://www.youtube.com/watch?v=OoA70D2TE0A&list=PLv2d7VI9OotQ1F92Jp9Ce7ovHEsuRQB3Y&index=7

4) list item

1. ol: 항상 태그를 사용하기 전에 mdn 사이트에 가서 속성(attributess)들이 무엇이 있는지 확인하고, 이를 사용하는 것이 현명합니다.

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
  <!-- ol, ul, li -->
  <!-- ol>li*3 tap키 누르면 ol밑에 li 태그가 3개 만들어짐 -->
  <ol type = "i" reversed>
    <li>hi</li>
    <li>hello</li>
    <li>hey</li>
  </ol>
</body>
</html>

2. ul

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
  <!-- ol, ul, li -->
 <ul>
   <li>치킨</li>
   <li>피자</li>
   <li>떡볶이</li>
 </ul>
</body>
</html>

5) Input and type

input: 우리가 원한는 데이터를 사용자가 입력하고, 우리는 그 데이터를 받을 수 있기 때문에 매우 유용한 태그입니다. 

mdn 에서 input 을 설명하는 페이지에 <input> 유형을 보면, 아래처럼 매우 다양한 유형들을 속성으로 설정하여 사용할 수 있다는 것을 알 수 있습니다. 

출처: https://developer.mozilla.org/ko/docs/Web/HTML/Element/input

그리고 보통 input만 사용하기 보다, 

label을 같이 사용하여서 사용자에게 정확히 어떤 정보를 입력받기를 원하는지 명확하게 나타낼 수 있습니다. 

 

또한 한 페이지 안에 많은 input들이 있고, 각 input은 유일한 정보일 가능성이 높기 때문에 이 경우

label과 해당 input에 id값을 설정하여 고유한 식별자를 주는 것이 좋습니다. 

<label for = "input_name>: 이 label은 input_name이라는 Id를 가지는 것을 위한 label이야

<input id = "input_name"> : 이 input은 사용자의 이름을 입력받기 위한 input이야

 

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
  <!-- input -->
  <div>
    <label for="input_name">Name: </label>
    <input id="input_name" type="text">
  </div>

  <div>
    <label for="input_file">file: </label>
    <input id="input_file" type="file">
  </div>
  
  <div>
    <label for="input_favoriteColor">Color: </label>
    <input id="input_favoriteColor" type="color">
  </div>
  
</body>
</html>