본문 바로가기
교육/CSS

CSS 개발자 수업 55일차 - float, position, z-index

by yhyuk 2021. 6. 17.
728x90
반응형

1. float

2. position, z-index


1. float

[ 정의 ]

- 해당 태그의 출력 방식을 따르지 않고, 원래 위치에서 벗어나 라인의 왼쪽/오른쪽 끝으로 이동한다.

- left, right, none(default)

- float이 적용되면 block 성질이 된다. (최상단 배치)

 

[ 예제 1 ]

<style>
    div {
        width: 500px;
        border-bottom: 1px dashed black;
    }
    
    span { float: right; }
</style>
<body>
    <div>
        테스트입니다.(div)
        <span>테스트입니다.(span)</span>
    </div>
</body>

span태그의 내용이 float 적용으로 오른쪽으로 이동했다.

 

[ 예제 2 ] 

<style>
    .box {
        border: 1px solid black;
        width: 120px;
        height: 120px;
        float: left;
    }

    .link {
        border: 1px solid black;
        margin-right: 5px;
        float: left;
    }
</style>
<body>
    <h1>블럭 태그</h1>
    <div class="box">상자1</div>
    <div class="box">상자2</div>
    <div class="box">상자3</div>
    
    <!-- 
        블럭태그에서 float성질 때문에 의도치 않던 인라인 태그 부분까지도 올라갔다.
        아래로 내릴 방법? -> 인라인 style 시트 방법 -> clear
    -->
    
    <h1 style="clear: both;">인라인 태그</h1> 
    <a href="#" class="link">링크1</a>
    <a href="#" class="link">링크2</a>
    <a href="#" class="link">링크3</a>

</body>

웹 페이지내에서 float 속성으로 왼쪽에 붙어있는 모습이다.

2. position, z-index

[ 정의 ]

- 태그의 출력되는 위치를 지정하는 속성

- 좌표값을 사용해서 요소의 위치를 지정한다. (x좌표, y좌표)

- 좌표를 지정하는 방식이 여러개 존재한다.( 속성에 따라 원점(0,0)이 다르고, 요소 배치 방식도 다르다. )

 

[ 속성 ]

 1) position: static

 - 기본값 (좌표값이 없다.)

- 코딩 순서에 따라 배치: 위 -> 아래, 왼쪽 -> 오른쪽

 

 2) position: absolute

 - 절대 좌표값

 - 원점(0, 0)이 절대적이다. ( 누구나 항상 동일한 장소를 원점으로 삼는다. )

 - left, top -> 좌표 지정

 - 문서 좌측 상단을 원점으로 하는 좌표계가 아니다. -> 자신의 직계 조상 중 가장 처음으로 만나는              position이 static이 아닌 조상(transform을 적용한 조상)을 원점으로 하는 좌표계이다.

 - 요소의 내용을 겹쳐서 출력이 가능하다.

 - 요소의 원래 공간은 사라진다.( display: none)

 

 3) position: relative

 - 상대 좌표값

 - 원점(0, 0)이 상대적이다. (태그의 원래 위치를 원점으로 삼는다)

 - left, top -> 좌표 지정

 - 원래 자신이 있던 위치를 원점(0, 0)으로 하는 좌표계이다.

- 요소의 원래 공간은 그대로 남는다. ( visibility: hidden ) -> 원래의 공간이 사라지면 원점 삼을 위치도 같     이 사라지기 때문이다.

 

 4) position: fixed

 - 고정 좌표값

 - left, top -> 좌표 지정

 - 뷰 포트 좌측 상단을 원점으로하는 좌표계 이다.

 - 요소의 원래 공간은 사라진다.

 

[ z-index 정의 ]

- position 속성을 사용하면 요소를 겹치게 할 수 있는데, 이때 요소들의 수직 위치를 z-index 속성을 통해 정할 수 있다. 

- 값은 정수로 표기하며, 더 큰 z-index 값을 가진 요소가 작은 값의 요소 위를 덮는다.

<style>
    .box {
        border: 1px solid black;
        width: 150px;
        height: 150px;
    }
    
    #box1 { background-color: tomato; }
    #box2 { background-color: gold; }
    #box3 { background-color: cornflowerblue; }
    
    #box1 {
        z-index: 4; /* z-index값이 가장 크지만 static이라서 적용 X */
    }
    #box2 {
        position: absolute;
        left: 150px;
        top: 150px;
        z-index: 2;
    }
    #box3 {
        position: absolute;
        left: 100px;
        top: 100px;
        z-index: 3;
    }
</style>

상자1이 z-index값이 가장 크지만 static이라 적용이 안된 모습이다


MEMO>

# CSS에서 배울 것이 많다보니 정리가 잘 안되고 머릿속에 들어오지 않지만, 모든것을 완벽히 외운다는 개념보다, 하나를 배우더라도 확실하게 이해 하고 가는 방식으로 공부해야겠다.

# 레이아웃 부분인 float, position 상당히 헷갈리다. 이번주 주말에 직접 코딩하면서 다시 복습 해야겠다.

# java, oracle과 다르게 어떤식으로 정리를 해야할지 감이 안잡힌다!

   -> 계속 여러 방식으로 정리 해보면서 나에게 맞는것을 찾아야겠다.

728x90
반응형

댓글