div 태그의 float 속성 > html

본문 바로가기
사이트 내 전체검색

html

div 태그의 float 속성

페이지 정보

작성자 서방님 댓글 0건 조회 123회 작성일 12-05-30 15:20

본문

<div>태그를 float로 쓰면 자신이 가진 컨텐츠 양만큼만 넓어진다.

float를 쓰면 block과 inline개념이 아예 없어짐을 유의한다.

 

float는 레이아웃을 잡을 때 쓴다. width와 height 값을 쓴다. width와 height값을 쓰지 않으면 컨텐츠 양만큼만 넓어진다.

 

float를 쓸 때는 꼭 float를 쓴 태그의 부모요소에도 알려야 하거나 float선언을 해제시켜줘야 한다. 

그렇지 않으면 부모div는 자식을 제대로 감싸지 못하여 다음에 오는 요소들과의 레이아웃이 깨지는 현상이 발생한다.

이를 해결하는 방법은 여러가지가 있고 그 중 적절한 방법을 쓰면 된다.

 

방법1.

float 되었음을 형제 Level에 알려준다.

clear:both는 float상태에서 벗어나 본래의 div속성인 block화 되어 위치가 엔터 상태가 된다.

대표적으로 푸터영역에서 쓰일 수 있다.

 

<div id="test1">

 <div class="test2">left</div>

 <div class="test3">right</div>

 <div style="clear:both"></div> 

 <!-- clear:both 선언한 태그의 자신부터 float가 해제된다 -->

</div>

 

 

방법2.

 <style type="text/css">

#test1 {float:left; padding:50px; background:orange;}

<!-- 자식이 float되었으므로 부모에게도 float 선언하여 자식이 float 되었음을 알려준다. -->

.test2 {float:left;  margin-right:50px; background:red;}
.test3 {float:right; background:blue;}

</style>

<div id="test1">
         <div class="test2">left</div>
         <div class="test3">right</div>
</div>

 

방법3.

대표적으로 <li>태그를 이용하여 리스트를 마크업할때 많이 쓰인다.

 

<style type="text/css">
          /* ie haslayout */
          #test1 {overflow:hidden; zoom:1; background:orange;}

          /* 부모한테 overflow:hidden; zoom:1;을 줘서 자식이 float임을 알려준다.*/
          .test2 {float:left;  background:red;}
          .test3 {float:right; background:blue;}
</style>

 

<div id="test1">
           <div class="test2">left</div>
           <div class="test3">right</div>
</div>

 

 

대부분 방법3을 기준으로 쓰되 상황에 따라 방법2와 방법3을 쓰도록 한다.

 

 

탭 만들기

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

01.jpg  

 

 

<style type="text/css">
        * {margin:0; padding:0;}
        ul {list-style:none;}
        body {font-size:12px; font-family:gulim; color:#333333; padding:30px;}

 

        /* 탭 */
        .tab {overflow:hidden; zoom:1;

                background:url(이미지파일path) left bottom repeat-x;}

        /* 자식이 float이므로 float 선언해준다. */
        .tab li {float:left; margin-right:5px; border:1px solid #666666; text-align:center; line-height:50px;

                  border-bottom:none;}

        /* 자식이 float이므로 float 선언해준다. 

            텍스트가 탭의 가운데에 오도록 하며 세로크기의 온전한 링크영역을 위해 line-height:50px; */
        .tab li a {float:left; width:100px; height:100px;}

        /* a는 inline요소이므로 원하는 width값과 height값만큼 링크 영역을 잡을 수가 없다. 그래서 float:left;를 쓴다.

   float:left를 쓰면 width값 height값이 먹으므로.. display:block 을 쓰기도 한다.*/

.tab li.current {background:white;}

        /* li.current는 li 태그 안에 current를 의미, li .current는 li 태그의 하위를 의미 */
        .tab li.current a {font-weight:bold; color:red;}
</style>

 

 

<ul class="tab">
         <li><a href="#">탭내용1</a></li>
         <li class="current"><a href="#">탭내용2</a></li>
         <li><a href="#">탭내용3</a></li>
         <li><a href="#">탭내용4</a></li>
</ul>

 

 

 

 

댓글목록

등록된 댓글이 없습니다.

Total 323건 11 페이지
게시물 검색

회원로그인

접속자집계

오늘
80
어제
84
최대
1,347
전체
154,451
Latest Crypto Fear & Greed Index

그누보드5
Copyright © 서방님.kr All rights reserved.