공부하는 남자   



  • Key log

  • 공부 하는 남자
    검색 하는 남자

  • Log in out

  • 관리자

  • 편집

  • 글 쓰기

  • Link
  • Home
  • div태그, table태그, p태그, span태그, li태그 등 영역 태그들의 차이

    2015. 1. 31. 20:18   html과css공부


    여러 종류의 영역 태그들


    영역 태그란 넓이와 높이를 속성으로 가지고 있는 태그들을 가리켜 영역 태그 라고 하며 block 이라고 도 합니다.


    대표적인 영역 태그로는 table태그와 div태그를 들수가 있으며 block레벨의 하위 inline-block엘리먼트의 대표적 영역 태그 로 는 span태그 를 들수가 있겠 습니다.


    그 외에도 문서의 바디부를 결정해주는 body태그가 있습니다.  


    div태그 의 그룹핑 태그 들 로 문단의 단락을 제어 하는 p태그 


    순서없는 목록 태그 인 ul 태그 

    순서 있는 목록태그 인 ol 태그 

    리스트 아이템을 제어 하는 li 태그 

    입력 폼을 제어 해주는 form태그 

    머리글을 설정 해 주는 h1~h6 태그 

    블록 레벨 인용문을 제어 해주는 blockquote태그 

    가로줄을 제어 하는 hr태그 등을 들수가 있겠 습니다.

     

    inline엘리먼트의 영역 태그로는 span태그
    링크를 걸어주는 앵커태그 인 a태그 
    짧은 인용문을 제어 해주는 cite태그
    i frame등을 들수가 있겠습니다.

    이번 시간에 이들 영역 태그들의 속성들을 예제를 들어 파헤쳐 보면서 태그들을 비교해 보는 시간을 갖도록 하겠습니다.

     

    div태그와 table태그

    body태그 그리고 사용빈도가 적은 태그들은 이번 시간에 다루지는 않도록 하겠습니다.


    table태그는 문서 내에 게재 하기 위한 각종 표를 만드는데 자주 사용 하는 영역 태그 로 써 이전에는 홈페이지나 싸이트 스킨의 영역을 레이아웃 하는데 많이 사용 했었습니다만 요즘은 div태그를 주로 사용 하는 추세로 나가고 있는것 같습니다.


    table태그의 기본적인 전체 구조는 아래와 같이 이루어져 있습니다.

    예제1)
    <style>
    table{  }
    </style>

    <table>
    <thead>
    <th>1</th><th>2</th><th>3</th><th>4</th>
    </thead>
    <tbody>
    <tr>
    <td>1</td><td>2</td><td>3</td><td>4</td>
    </tr>
    <tr>
    <td>1</td><td>2</td><td>3</td><td>4</td>
    </tr>
    </tbody>
    <tfoot>
    <tr>
    <td>1</td><td>2</td><td>3</td><td>4</td>
    </tr>
    </tfoot>
    </table>
     

    이렇게 아무런 속성과 값이나 스타일 정의가 없을 경우 결과는 아래 처럼 나타 나게 될 것입니다.


    결과)

    1 2 3 4
    1 2 3 4
    1 2 3 4
    1 2 3 4


    table 태그는 이렇게 여러 가지의 하위 태그들을 가지고 있는 복합구조의 태그라고 할수 있습니다.


    여기에 스타일을 주어 하나씩 꾸며 보도록 합니다.


    예제2)

    <style>

    #tga{

     margin-top:10px; margin-bottom:10px; 

     width:100%; height:auto; 

     border:1px solid gray;

     text-align:center; 

     cellspacing:0px; 

     cellpadding:10px; 

     background:rgb(230,230,0);

     }

    </style>


    <table id="tga">

    <thead>

    <tr>

    <th>1</th><th>2</th><th>3</th><th>4</th>

    </tr>

    </thead>

    <tbody>

    <tr>

    <td>1</td><td>2</td><td>3</td><td>4</td>

    </tr>

    <tr>

    <td>1</td><td>2</td><td>3</td><td>4</td>

    </tr>

    </tbody>

    <tfoot>

    <tr>

    <td>1</td><td>2</td><td>3</td><td>4</td>

    </tr>

    </tfoot>

    </table>


    결과)

    1 2 3 4
    1 2 3 4
    1 2 3 4
    1 2 3 4


    예제3)

    <style>

         #tga{

           margin-top:10px; margin-bottom:10px; 

           width:100%; height:auto; 

           border:1px solid gray; 

           text-align:center; 

           cellspacing:0px; 

           cellpadding:10px; 

           background:rgb(230,230,0);

             }

         #tga>thead{

          width:100%; height:auto; 

          border:1px solid gray; 

          text-align:center; 

          cellspacing:0px; 

          cellpadding:10px; 

          background:rgb(230,0,0);

         }

    </style>


    결과)

    1 2 3 4
    1 2 3 4
    1 2 3 4
    1 2 3 4



    예제4)

    <style>

       #tga{

         margin-top:10px; 

         margin-bottom:10px; 

         width:100%; height:auto; 

         border:1px solid gray;  

         text-align:center; 

         cellspacing:0px; 

         cellpadding:10px; 

         background:rgb(230,230,0);

         }


       #tga>thead{

         width:100%; 

         height:auto; 

         border:1px solid gray; 

         text-align:center; 

         cellspacing:0px; 

         cellpadding:10px; 

         background:rgb(230,0,0);

        }


        #tga>tbody{

         width:100%; 

         height:auto; 

         border:1px solid gray; 

         text-align:center; 

         cellspacing:0px; 

         cellpadding:10px; 

         background:rgb(0,230,0);

        }

    </style>


    결과)

    1 2 3 4
    1 2 3 4
    1 2 3 4
    1 2 3 4

    예제5)
    <style>

       #tga{

         margin-top:10px; 

         margin-bottom:10px; 

         width:100%; 

         height:auto; 

         border:1px solid gray; 

         text-align:center; 

         cellspacing:0px; 

         cellpadding:10px; 

         background:rgb(230,230,0);

       }


       #tga>thead{

        width:100%; 

        height:auto; 

        border:1px solid gray;  

        text-align:center; 

        cellspacing:0px; 

        cellpadding:10px; 

        background:rgb(230,0,0);

       }


       #tga>tbody{

        width:100%; 

        height:auto; 

        border:1px solid gray;

        text-align:center; 

        cellspacing:0px; 

        cellpadding:10px; 

        background:rgb(0,230,0);

       }


       #tga>tfoot{

        width:100%; 

        height:auto; 

        border:1px solid gray;

        text-align:center; 

        cellspacing:0px; 

        cellpadding:10px; 

        background:rgb(0,0,230);

       }

    </style>


    결과)
    1 2 3 4
    1 2 3 4
    1 2 3 4
    1 2 3 4

    예제6)
    <style>

       #tga{

         margin-top:10px; margin-bottom:10px; 

         width:100%; height:auto; 

         border:1px solid gray;  

         text-align:center; 

         cellspacing:0px; 

         cellpadding:10px; 

         background:rgb(230,230,0);

        }


       #tga>thead{

          width:100%; height:auto; 

          border:1px solid gray; 

          text-align:center; 

          cellspacing:0px; 

          cellpadding:10px; 

          background:rgb(230,0,0);

        }


       #tga>tbody{

         width:100%; height:auto; 

         border:1px solid gray; 

         text-align:center; 

         cellspacing:0px; 

         cellpadding:10px; 

         background:rgb(0,230,0);

        }


       #tga>tfoot{

         width:100%; height:auto; 

          border:1px solid gray;  

          text-align:center; 

          cellspacing:0px; 

          cellpadding:10px; 

          background:rgb(0,0,230);

        }


       #tga td{

         width:25%; height:auto; 

          border:1px solid blue; 

          text-align:center; 

          cellspacing:0px; 

          cellpadding:10px; 

          background:rgb(0,0,230);

       }

    </style>


    결과)
    1 2 3 4
    1 2 3 4
    1 2 3 4
    1 2 3 4


     

    위와 같이 table의 기본적 구조에 스타일시트를 이용해 원격으로 스타일을 주어 table을 꾸며 봤습니다.

    그럼 이번엔 div태그에 스타일을 주어 위의 테이블 과 같은 모양을 만들어 보도록 합니다.
    우선 div기본 구조부터 만들어 보도록 합니다.

    예제7)
    <style>
    div{  }
    </style>

    <div>
    div태그의 기본 구조
    </div>

    결과) 
    div태그의 기본 구조

     

     


    위에서 확인 한것처럼 div태그는 기본 구조가 한칸으로 이루어져 있는 단독 태그 입니다.

    속성과 값  스타일을 주지 않았을때 이렇게 text의 문자열을 한블록 안에다 가두고 나타내는 효과를 가지게 되는 것입니다.

    이것은 p태그의 속성과도 같습니다.

    그럼 여기에 스타일을 주어 위의 table과 같은 형태로 만들어 봅니다.

     

     

    <style>

    #dga{

    display:block; 

    margin-top:10px; margin-bottom:10px; 

    width:408px; height:150px; 

    border-top:1px solid gray; border-bottom:1px solid gray; border-left:1px solid gray; border-right:1px solid gray; 

    text-align:center; 

    padding:2px; 

    background:rgb(230,230,0); 

    position:relative; 

    overflow:hidden;

    }

     

    .dgaa{

    display:inline-block; 

    float:left; 

    margin-right:1px; margin-bottom:1px; 

    width:25%; height:30px; 

    border-top:1px solid gray; border-bottom:1px solid gray; border-left:1px solid gray; border-right:1px solid gray; 

    text-align:center; 

    padding:2px; 

    background:rgb(230,0,0); 

    position:absolute; top:0; left:0; 

    overflow:hidden;

    }


    .dgab{

    display:inline-block; 

    float:left; margin-right:1px; margin-bottom:1px; 

    width:25%; height:30px; 

    border-top:1px solid gray; border-bottom:1px solid gray; border-left:1px solid gray; border-right:1px solid gray; 

    text-align:center; 

    padding:2px; background:rgb(230,0,0); 

    position:absolute; top:0; left:101px;

    overflow:hidden;

    }


    .dgac{

    display:inline-block; 

    float:left; margin-right:1px; margin-bottom:1px; 

    width:25%; height:30px; 

    border-top:1px solid gray; border-bottom:1px solid gray; border-left:1px solid gray; border-right:1px solid gray; 

    text-align:center; padding:2px; 

    background:rgb(230,0,0); 

    position:absolute; top:0; left:202px;

    overflow:hidden;

    }


    .dgad{

    display:inline-block;

    float:left; margin-right:1px; margin-bottom:1px; 

    width:25%; height:30px; 

    border-top:1px solid gray; border-bottom:1px solid gray; border-left:1px solid gray; border-right:1px solid gray; 

    text-align:center; padding:2px; 

    background:rgb(230,0,0); 

    position:absolute; top:0; left:303px;

    overflow:hidden;

    }

     

     

    .dgba{
    display:inline-block; 
    float:left;margin-right:1px; 
    width:25%; height:30px; 
    border-top:1px solid gray; border-bottom:1px solid gray; border-left:1px solid gray; border-right:1px solid gray; 
    text-align:center; padding-top:2px; 
    background:rgb(0,230,0); 
    position:absolute; top:31px; left:0; 
    overflow:hidden;
    }

     

    .dgbb{
    display:inline-block; 
    float:left;margin-right:1px; 
    width:25%; height:30px; 
    border-top:1px solid gray; border-bottom:1px solid gray; border-left:1px solid gray; border-right:1px solid gray; 
    text-align:center; padding-top:2px; 
    background:rgb(0,230,0); 
    position:absolute; top:31px; left:25%; 
    overflow:hidden;
    }

     

    .dgbc{
    display:inline-block; 
    float:left;margin-right:1px; 
    width:25%; height:30px 
    border-top:1px solid gray; border-bottom:1px solid gray; border-left:1px solid gray; border-right:1px solid gray; 
    text-align:center; padding-top:2px; 
    background:rgb(0,230,0); 
    position:absolute; top:31px; left:50%; 
    overflow:hidden;
    }

     

    .dgbd{
    display:inline-block; 
    float:left;margin-right:1px; 
    width:25%; height:30px; 
    border-top:1px solid gray; border-bottom:1px solid gray; border-left:1px solid gray; border-right:1px solid gray; 
    text-align:center; padding-top:2px; 
    background:rgb(0,230,0); 
    position:absolute; top:31px; left:75%; 
    overflow:hidden;
    }

     

     

    .dgca{
    display:inline-block; 
    float:left; margin-right:1px; 
    width:25%; height:30px; 
    border-top:1px solid gray; border-bottom:1px solid gray; border-left:1px solid gray; border-right:1px solid gray; 
    text-align:center; padding-top:2px; 
    background:rgb(0,230,0); 
    position:absolute; top:62px; left:0;
    overflow:hidden;
    }

     

    .dgcb{
    display:inline-block; 
    float:left; margin-right:1px; 
    width:25%; height:30px; 
    border-top:1px solid gray; border-bottom:1px solid gray; border-left:1px solid gray; border-right:1px solid gray; 
    text-align:center; padding-top:2px; 
    background:rgb(0,230,0); 
    position:absolute; top:62px; left:25%;
    overflow:hidden;
    }

     

    .dgcc{
    display:inline-block; 
    float:left; margin-right:1px; 
    width:25%; height:30px; 
    border-top:1px solid gray; border-bottom:1px solid gray; border-left:1px solid gray; border-right:1px solid gray; 
    text-align:center; padding-top:2px; 
    background:rgb(0,230,0); 
    position:absolute; top:62px; left:50%;
    overflow:hidden;
    }

     

    .dgcd{
    display:inline-block; 
    float:left; margin-right:1px; 
    width:25%; height:30px; 
    border-top:1px solid gray; border-bottom:1px solid gray; border-left:1px solid gray; border-right:1px solid gray; 
    text-align:center; padding-top:2px; 
    background:rgb(0,230,0); 
    position:absolute; top:62px; left:75%;
    overflow:hidden;
    }

     

     

    .dgda{
    display:inline-block; 
    float:left; margin-right:1px; 
    width:25%; height:30px; 
    border-top:1px solid gray; border-bottom:1px solid gray; border-left:1px solid gray; border-right:1px solid gray; 
    text-align:center; padding-top:2px; 
    background:rgb(0,0,230); 
    position:absolute; top:93px; left:0;
    overflow:hidden;
    }

     

    .dgdb{
    display:inline-block; 
    float:left; margin-right:1px; 
    width:25%; height:30px; 
    border-top:1px solid gray; border-bottom:1px solid gray; border-left:1px solid gray; border-right:1px solid gray; 
    text-align:center; padding-top:2px; 
    background:rgb(0,0,230); 
    position:absolute; top:93px; left:25%;
    overflow:hidden;
    }

     

    .dgdc{
    display:inline-block; 
    float:left; margin-right:1px; 
    width:25%; height:30px; 
    border-top:1px solid gray; border-bottom:1px solid gray; border-left:1px solid gray; border-right:1px solid gray; 
    text-align:center; padding-top:2px; 
    background:rgb(0,0,230); 
    position:absolute; top:93px; left:50%;
    overflow:hidden;
    }

     

    .dgdd{
    display:inline-block; 
    float:left; margin-right:1px; 
    width:25%; height:30px; 
    border-top:1px solid gray; border-bottom:1px solid gray; border-left:1px solid gray; border-right:1px solid gray; 
    text-align:center; padding-top:2px; 
    background:rgb(0,0,230); 
    position:absolute; top:93px; left:75%;
    overflow:hidden;
    }

      .wra{

         position:relative; left:0;

         }

    </style>

     

     

     

     

    <div id="dga">

    <div class="wra">

    <div class="dgaa">1</div>
    <div class="dgab">2</div>
    <div class="dgac">3</div>
    <div class="dgad">4</div>
    </div>

     

    <div class="wra">

    <div class="dgba">1</div>
    <div class="dgbb">2</div>
    <div class="dgbc">3</div>
    <div class="dgbd">4</div> 
    </div>

     

    <div class="wra">

    <div class="dgca">1</div>
    <div class="dgcb">2</div>
    <div class="dgcc">3</div>
    <div class="dgcd">4</div>
    </div>

     

    <div class="wra">
    <div class="dgda">1</div>

    <div class="dgdb">2</div>

    <div class="dgdc">3</div>

    <div class="dgdd">4</div>

    </div>  
    </div>

     

     

    결과) 

    1
    2
    3
    4
    1
    2
    3
    4
    1
    2
    3
    4
    1
    2
    3
    4

     

    DIV태그 역시 TABLE태그 처럼 테이블 표 만들기를 할수가 있습니다.

     

    TABLE태그안에 DIV태그를 적용해 DIV를 셀 처럼 활용할수도 있고요 DIV 안에 TABLE태그를 이용해 표나 레이 아웃을 구성 할수도 있습니다.

     

     

    DIV태그와 P태그의 차이

     

    DIV태그와 P태그의 차이

     

     

    DIV나 TABLE태그의 경우는 거의 모든 태그들을 가두어 사용 할수가 있는반면 DIV와 유사한 기능을 가지고 있는 P태그의 경우 블록 레벨 엘리먼트를 가두어 사용 할수가 없습니다. 

     

    위의 두줄의 소제목 바는 겉으로 보기에 비슷 하게 보입니다.

    그러나 상위줄은 DIV태그에 스타일을 입힌 것이고 아래 줄은 P태그에 스타일을 입힌 것입니다.

     

    예제8}

    <DIV id=stalf>DIV태그와 P태그의 차이</div>

     

    <P id=stalf>DIV태그와 P태그의 차이</P>

     

     

     

    DIV태그와 P태그의 차이

     

    DIV태그와 P태그의 차이

     

     

    DIV안에는P태그를 사용해 문단의 단락을 지정 해줄수 있어도 P태그안에는DIV태그 나 TABLE태그 UL OL LI태그 같은 블록 태그들을 가두어 사용 할수가 없습니다.

     

     

    예제9)

     

    <DIV id=stalf>DIV태그와 P태그의 차이<P>비슷 하지만 다르다.</P></div>


     

    <P id=stalf>DIV태그와 P태그의 차이<DIV>비슷 하지만 다르다.</DIV></P>

     

     

    결과)

     

    DIV태그와 P태그의 차이

    비슷 하지만 다르다.


     

    DIV태그와 P태그의 차이

    비슷 하지만 다르다.

     

     

     

    위의 결과에서 처럼 P태그안의 DIV공간에 주어진 문자들이 밖으로 튕겨져 나와 버렸습니다.

     

    P태그에서 줄바꿈을 하기 위해서는 P태그나 BR태그를 사용할수밖에 없겠죠 

     

    우리가 사용 하는 태그들이 블록 태그인지 인라인엘리먼트 인지 알고 싶은 경우 아래 처럼

    테스트를 해보면 알수 있습니다,

     

    그럼 우리가 많이 사용 하는 문단의 개행을 담당 하는 태그 BR태그는 영역 태그인지 아닌지 한번 테스트를 해 봅니다.

     

    예제10)

     

    <BR id=stalf>BR태그와 P태그의 차이<BR>비슷 하지만 다르다.</BR></BR>


     

    <P id=stalf>BR태그와 P태그의 차이<BR>비슷 하지만 다르다.</BR></P>

     

     

    결과)


    BR태그와 P태그의 차이
    비슷 하지만 다르다.


     

    BR태그와 P태그의 차이
    비슷 하지만 다르다.


     

    위 결과에서 P태그 안의 문자들은 영역 안에 가두어 지므로 영역 태그인것이 확실 하지만

    BR태그는 문자들을 가두어 두지 못한 결과를 보였으므로 영역 태그는 아니죠

     

     

    <P class=stalf>SPAN태그는 영역 태그 일까?<br/>비슷 하지만 다르다.<br/></P>

     

    <SPAN class=stalf>SPAN태그와 P태그의 차이<BR>비슷 하지만 다르다.</BR></SPAN>


     

    SPAN태그는 영역 태그 일까?
    비슷 하지만 다르다.


     

    SPAN태그와 P태그의 차이
    비슷 하지만 다르다.

     

    <p class=stalf>SPAN태그는 무슨 태그일까?</p>

     

     

    <SPAN class=stalf>SPAN태그는 무슨 태그일까?</SPAN>

     

    SPAN태그는 무슨 태그일까?

     

    SPAN태그는 무슨 태그일까?

     

    아래는 위 stalf CLASS에 정의된 스타일 입니다

     

    .stalf{width:500px; height:100px; font-family:'Malgun Gothic ','맑은고딕','sans-serif ';font-size:14pt; line-height:24px; color:rgb(230,230,230); border-top:1px solid blue; border-left:1px solid blue;  border-right:1px solid blue;  border-bottom:1px solid blue; background:rgb(200,50,200); border-radius:0.3em; text-align:center; padding:7px;}

     

    p태그와 span태그에 동일한 스타일이 주어 졌지만 모양이 다르게 출력 되었 습니다.

     

    WIDTH와 HEIGHT를 정의 해주었지만 그것을 무시하고 닫힘 태그만큼에서 PADDING만큼 의 공간을 가지며 영역이 끝나 버리고 말았네요

     

    그렇다고 br태그 처럼 테두리 영역이 없는 것도 아니죠 상당히 특이한 경우 입니다.

     

    이것은 블록레벨과 인라인 엘리먼트가 조합되어 있는 특수한 경우 인 것이죠

    블록레벨과 인라인 레벨의 중간 요소 엘리먼트라고 할수 있습니다, 

     

    그래서 SPAN태그를 가리켜 INLINE-BLOCK(인라인 블록) 엘리먼트라고 부르는 것이죠

     

    오늘은 여러가지 영역 태그들의 차이점들을 알아 보았습니다.

    감사 합니다.

     

     


    T,back:     Comment: