프로젝트4 - div 섹션 구역 분리 와 CSS 스타일 적용하기

이미지
웹 브라우저에 표시되는 글자와 이미지 들에 디자인 적인 효과( 배경색, 글자색, 크기 조절...) 및 브라우저 내에서의 배치등을 조절하기 위해서는 구역을 나누면 편리해진다. 바로 구역(섹션) 을 나누어 주는 역할을 하는 태그가 div 이다. <div>태그는 브라우저에서 보여지는 시각적 기능은 없다. 단지, 구역을 나누는 역할을 한다.  코드를 만들어 본다. <!DOCTYPE html> <html> <head>   <title>div</title> </head> <body>   <div>     <p>Ice cream is a frozen dessert typically made from milk or cream that has been flavoured with a sweetener,        either sugar or an alternative, and a spice,        such as cocoa or vanilla, or with fruit, such as strawberries or peaches.</p>   </div>   <div>     <p> Food colouring is sometimes added in addition to stabilizers.        mixture is cooled below the freezing point of water and stirred to incorporate air spaces and prevent detectable ice crystals from forming.        It can also be made by whisking a flavoured cream base and liquid nitrogen together.        The result is a smooth, semi-solid foam that is solid at v

HTML DOM 이란?

HTML DOM 이란 Document Object Model 의 약자로
웹 페이지가 로딩될때 브라우져는 HTML을 DOM 으로 만든다. HTML 문서를 객체로 만든다.
DOM 으로 만들어진 객체 덕분에 자바스크립트는 HTML document의 모든 요소에 접근 및 수정을 할 수 있게 된다.

Dom 은 이런식의 구조를 가진다. DOM 트리 라고 부른다.


위 객체 구조는 하기 HTML문서를 객체한 한 것이다.
<!DOCTYPE html>
<html>
<head>>
  <title>My title</title>
</head>
<body>
  <a href="My link"></a>
  <h1>My header</h1>
</body>
</html>

더 복잡은 HTML문서 역시 
DOM 트리로 생성시 동일한 구조를 가진다.
이것이 바로 DOM 이다. HTML을 자바스크립트가 접근 할수 있도록 객체화 한 것!

자바스크립트 는 자체적으로 객체를 지원한다.
이를 내장 객체라고 한다. Math, Array, String 등등... 이미 여러 기능구현이 되어있는 객체들이다. 
이 외에 웹 브라우저에서 제공되는 객체를 브라우저 객체모델(BOM)이라고 하며.
여기에 DOM이 포함되어 있다.
BOM의 최상위 객체는 window 이다. DOM 트리 최상단의 document 역시 바로 window의 하부 객체 이다. 

코드상으로는 이렇게 접근이 가능하다.
  <h1>My header</h1>
  <script>
    const temp = window.document.getElementsByTagName("h1");
    console.log(temp[0].innerHTML);
  </script>

window 객체는 모든 브라우저객체의 최상단 부모이기에 생략해서 
document.getElXXX(); 로 사용해도 무방하다.
생략이 되었다는 것을 아는것과 모르는 것은 다르다.

다시 DOM 트리 나무를 본다.
가지를 따라 각각의 나뭇잎 같이 보이는 요소(element)들을 "노드"라고 부른다.

Document 는 DOM트리 문서 전체를 대표하기에 "루트 노드" 또는 "Document 노드" 라고 한다.
html, head, body, title, a, h1 등은 html 에서 요소이며, DOM에서도 이들을 "요소노드" 라고 부른다. 
자바스크립트에서 HTML 접근하는 첫번째 관문이 바로 요소노드 이다.
이런 형식으로 말이다.
    const temp = window.document.getElementsByTagName("h1");

요소에 접근한 후에는 콘텐츠에 접근하여 텍스트를 수정할 수도 있다. 

temp[0].innerHTML

요소에 접근하여 콘텐츠 값 및 속성 및 스타일 등을 변경할 수 있기에
DOM은 자바스크립트 학습에 주요한 부분이 되겠다.
동적인 웹페이지를 자바스크립트를 통해서 만들어야 하기 때문이다.

댓글

이 블로그의 인기 게시물

구글 블로그 이미지 복사 붙여넣기 가능한가요?

HTML 페이지 기본 구성.(HTML Page Structure)

구글 블로그 대표이미지 설정하기