프론트엔드/HTML & CSS 강의

4. div 요소로 작성하는 문서의 그룹화

syleemomo 2023. 6. 7. 01:07
728x90

네이버사이트를 개발자 도구에서 확인해보면 헤더 부분의 검색창과 메뉴들을 화면에 보여주기 위하여 수많은 태그들이 사용된 것을 확인할 수 있다. 그 중에서 헤더부분 전체를 그룹화하고 있는 태그는 div 요소라는 것을 확인할 수 있다. 

 

간단한 웹페이지 레이아웃 구현하기

웹페이지 레이아웃 구현하기

<!DOCTYPE html>
<html lang="ko">

    <head>
        <meta charset="UTF-8">
        <title>div 그룹화</title>
    </head>
    
    <body>
        <div></div>
    </body>
    
</html>

브라우저의 좌우에는 빈공간이 있고 중앙에는 전체 엘리먼트를 모두 묶어줄 div 요소가 필요하다. 

<!DOCTYPE html>
<html lang="ko">

    <head>
        <meta charset="UTF-8">
        <title>div 그룹화</title>
    </head>
    
    <body>
        <div>
            <div></div>
            <div></div>
            <div></div>
        </div>
    </body>
    
</html>

중앙에 위치한 전체 div 요소 안에는 크게 세 부분으로 나뉘어진다. 상단에 위치한 헤더영역, 중앙에 위치한 컨텐츠영역, 하단에 위치한 푸터영역으로 구분할 수 있다. 각 영역 안에는 수많은 요소들이 들어갈 것이고 이를 그룹화하기 위한 3개의 div 요소가 필요하다.

<!DOCTYPE html>
<html lang="ko">

    <head>
        <meta charset="UTF-8">
        <title>div 그룹화</title>
    </head>
    
    <body>
        <div>
            <div>
                <h1>Logo</h1>
                <h2>Menu</h2>
            </div>
            <div></div>
            <div></div>
        </div>
    </body>
    
</html>

상단의 헤더영역은 다시 크게 두 부분으로 나눌수 있다. 로고가 위치한 부분과 메뉴들이 위치한 부분이다. 이를 h1, h2 태그로 구분하면 위와 같다. 

<!DOCTYPE html>
<html lang="ko">

    <head>
        <meta charset="UTF-8">
        <title>div 그룹화</title>
    </head>
    
    <body>
        <div>
            <div>
                <h1>Logo</h1>
                <h2>Menu</h2>
            </div>
            <div>
                <h2>Sub Menu</h2>
                <h2>Main content</h2>
            </div>
            <div></div>
        </div>
    </body>
    
</html>

증앙에 위치한 컨텐츠 영역은 다시 크게 두 부분으로 나눌수 있다. 좌측의 서브메뉴와 우측의 메인컨텐츠 부분이다. 

<!DOCTYPE html>
<html lang="ko">

    <head>
        <meta charset="UTF-8">
        <title>div 그룹화</title>
    </head>
    
    <body>
        <div>
            <div>
                <h1>Logo</h1>
                <h2>Menu</h2>
            </div>
            <div>
                <h2>Sub Menu</h2>
                <h2>Main content</h2>
            </div>
            <div>
                <h2>Footer</h2>
            </div>
        </div>
    </body>
    
</html>

마지막으로 푸터영역은 나누어진 부분이 없이 하나이다. 

CSS 가 적용되지 않은 모습

하지만 처음에 만드려고 했던 웹사이트 레이아웃과는 많이 다르게 보인다. 이유는 CSS 스타일이 적용되지 않았기 때문이다. CSS 스타일을 적용하여 각 div 요소와 h1, h2 요소의 크기와 위치를 지정해주면 의도한 레이아웃에 근접하게 보일 것이다. 즉, 스타일을 적용하기 위해서는 스타일을 적용할 요소를 선택해야 한다. 

<!DOCTYPE html>
<html lang="ko">

    <head>
        <meta charset="UTF-8">
        <title>div 그룹화</title>
    </head>
    
    <body>
        <div id="wrapper">
            <div id="header">
                <h1>Logo</h1>
                <h2>Menu</h2>
            </div>
            <div id="content">
                <h2>Sub Menu</h2>
                <h2>Main content</h2>
            </div>
            <div id="footer">
                <h2>Footer</h2>
            </div>
        </div>
    </body>
    
</html>

현재 여러개의 div 요소와 h1, h2 요소가 있기 때문에 특정 요소를 선택하기 위해서는 요소마다 이름이 필요하다. 요소마다 붙여주는 이름에는 id와 class가 있다. id 는 HTML 문서에서 유일한 이름이고 class 는 동일한 스타일을 적용할 요소에 모두 붙여주는 이름이다. 현재는 id 로만 이름을 붙여주자!

 

그룹화요소 span

<!DOCTYPE html>
<html lang="ko">

    <head>
        <meta charset="UTF-8">
        <title>div 그룹화</title>
    </head>
    
    <body>
        <div id="wrapper">
            <div id="header">
                <h1>Logo</h1>
                <h2>Menu</h2>
            </div>
            <div id="content">
                <h2>Sub Menu</h2>
                <h2>Main content</h2>
            </div>
            <div id="footer">
                <h2>Footer</h2>
                <p>
                    <span><em>www.abc.com</em> <i>&copy; copyright</i></span> All rights reserved
                </p>
            </div>
        </div>
    </body>
    
</html>

span 태그는 인라인요소이며 문장에서 일부분에 하이라이트를 주거나 다른 스타일을 적용할때 사용한다. 또는 div 요소처럼 다른 인라인요소들을 그룹으로 묶어줄때 사용한다. 현재는 em, i 태그를 그룹으로 묶어주었다. 

 

728x90