HTML의 기초 개념

PromptAction·2023년 4월 28일
0

프론트엔드

목록 보기
1/16

막막한 공부의 첫 시작이다.

HTML이 뭐임?! 이라고 질문을 받았을때 아무 대답을 하지 못했던 상태보다는 나아지길 바래보면서 내 입맛대로 적어볼거다.

HTML(HyperText Markup Language)의 공식 개념은 '웹을 이루는 가장 기초적인 구성 요소로, 웹 콘텐츠의 의미와 구조를 정의할 때 사용함'.이라고 한다
(여기서 hypertext는 뭐냐. 웹 페이지를 다른 페이지로 연결하는 링크를 말한다. 링크는 웹의 근본적인 속성이다.)

HTML은 웹 브라우저에 표시되는 글과 이미지 등의 다양한 콘텐츠를 표시하기 위해서 "MAKR UP(어떠한 표시)"이라는 것을 사용한다.
*mark up language는 태그를 이용하여 문서나 데이터의 구조를 명시하는 언어를 지칭함.

MARK UP은 다양한 요소를 사용하는데 그 요소에는

<title>, <section>,<p>, <head>, <body>, <header>,
  <main>, <footer>, <embed>, <nav>, <article>, <aside>

등이 있다.


위에 말한 것과 같이 HTML은 요소로 구성되어있다.
그 요소들을 분석해보면

이런식이다.

HTML은 기본적으로 뭔가를 감싸고 있는 구조로 이루어져 있기 때문에 시작태그(여는 태그)와 종료태그(닫는 태그)로 로 구성된다.

ex)

<p>My cat is very grumpy</p>

한 줄이 독립적인 구문이 되기를 원한다면,paragraph 태그인 p태그로 둘러싸서 그것이 하나의 문단임을 명시해준다.

요소를 구성하고 있는 태그는 그들의 속성(Attribute)을 가질 수 있는데 다음과 같이 사용한다.

ex)

<p class="value">cat is very grumpy</p>

위의 ex) 두개를 비교해보자.
일반적인 p태그는 단순히 구문을 나타내주는 태그이다.
그치만 p 태그 내부의 속성이 추가된다면, 그는 실제 겉으로 표시가 되지는 않지만 추가적인 정보를 담을 수 있는 것이다.
위 예시를 계속 이용하자면 p태그의 attribute인 class는 class attribute를 이용해 요소를 특정하고, 다른 정보를 설정할 때 구분지어줄 수 있는 식별자를 지정할 수 있는 것이다.

또 요소는 하나만 들어갈 수 있지 않고 중첩(nesting)이 가능하다. cat is very grumpy 라고 표시되길 원한다면

<p>cai is <strong>very</strong> grumpy</P>

이런식으로도 작성이 된다.

닫는 태그가 없는 요소들도 존재한다.
ex)

<br/>,<img>,<meta>,<link>,<hr>

등이 있다. 이를 self-closing이라고도 한다.


자 여기까지 봤으면 이제 HTML 문서를 해부해보자.

<!DOCTYPE html>
<html lang="ko-kr">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title></title>
  </head>
  <body>
    <header>
      <p><strong></strong></p>
    </header>
    <main>
      <div>
        <p></p>
      </div>
      <form>
        <div>
          <label></label>
          <input
            id=
            type=
            accep=
            placeholder=
            maxlength=
            minlength=
            required
            name=
            autocomplete=
            autofocus
          />
        </div>
        <div>
          <label></label>
          <input/>
          <div>
            <button></button>
            <button></button>
            <button></button>
          </div>
      </form>
    </main>
    <footer>
      <div>
        <p></p>
        <a></a>
      </div>
      <p>
        <b><br /></b>
      </p>
    </footer>
  </body>
</html>

<doctype html> : 없어서는 안되는 필수 서문이다. 이 파일은 HTML 이라는 것을 설명해준다. 직관적이다.

<html> : HTML이라는 태그. 무언가를 감싸고 있는 형태이다. lang attribute는 언어라는 것을 의미.

<head> : 우리가 볼 수 있는 화면, 시각적인 것에 해당하지 않는 것이 head에 담김. 페이지 설명, 콘텐츠를 꾸미기 위한 CSS, 문자 집합 선언 등이 포함됨.

<meta charset="utf-8"> : 사용 할 수 있는 문자 집합의 설정. 어떠한 문자 컨텐츠도 다룰 수 있음. 이 문자 설정을 하지 않을 이유가 없음.

<meta name="viewport" content="width=device-width"> : 뷰포트 요소 설정. 뷰포트의 너비에서 페이지가 렌더링 하도록 하며, 모바일 브라우저가 뷰포트보다 넓은 페이지를 렌더링 한 후 축소하는 것을 방지함.

<title></title> : 페이지의 제목을 설정함. 브라우저의 탭에 나타나는 제목을 설정해 줄 수 있다. 북마크나 즐겨찾기에서 페이지를 설정할 때 사용될 수 있다.

<body> : 보여지는 화면에 해당되는 것들을 표시한다. 텍스트. 이미지, 게임, 등 무엇이든 될 수 있다.

구성은 이걸 참고하면 편하다.


뭔가 많아 보이지만 기본 구성 태그와 시멘틱 태그를 알고가면 훨씬 편하다.

왜 시멘틱 태그가 필요하냐고? 우리는 정확한 요소를 사용하고 있는지, 컨텐츠의 의미를 파악할 수 있는지 확실히 하고 이해해야 한다. 이 맥락에서 기능과 메뉴들을 구분하기 위해 사용한다는 것이다.

sementic tag

<nav>, <section>, <article>, <aside>, <header>, <main>, <footer>

정도가 있다.

다양한 태그를 더 알고싶으면 공식문서인 MDN을 참고하도록 하자.

https://developer.mozilla.org/ko/docs/Web/HTML/Attributes

HTML은 오류를 보여주지 않고 웹브라우저가 임의로 결과를 보여준다.
'웬만한 오류는 알아서 처리해준다.' 라는게 좋을 때도 있지만 예상치 못한, 의도하지 않는 화면이 될 수도 있기 때문에 마크업을 방지하는 검사를 진행하기도 한다.

https://validator.w3.org/

0개의 댓글