본문 바로가기
HTML, CSS

[CSS] position 속성 absolute, relative

by mutex 2024. 7. 16.

안녕하세요.

 

이번에 Position 속성에 대해 공부해 보겠습니다.

 

첫번째로 Position에는 5가지의 속성이 존재합니다.

 

position: static;  positon을 지정 하지 않았다면 기본값으로 들어가는 속성입니다. (이동이 불가합니다)
position: relative; 현재 위치에서 자유롭게 이동 가능한 속성입니다.
position: absolute; 절대적으로 위치를 이동가능한 속성입니다.
position: fixed; 항상 화면에 고정되어있는 속성입니다.
position: sticky; 스크롤영역 기준으로 움직이는 속성입니다.

 

예를 들며 보겠습니다.

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="utf-8">
    <title>Layout Project</title>
    <link rel="stylesheet", href="project2.css"> 
  </head>
  <body>
        <div class="red box">red
            <div class="blue box">blue
                <div class="green box">green</div>
                <div class="yellow box">yellow</div>
            </div>
        </div>
  </body>
</html>
.box{
}

.red{
    background-color: #e46e80;
    position: relative;
    width: 300px;
    height: 300px;
    
}

.blue{
    background-color: #5195ee;
    border:2px dotted black;
    position: absolute;
    inset: 70px;
    }

.green{
    background-color: #32b9c1;
    position: relative;
    height: 50px;
    width: 60px;
    top: 20px;
    left: 163px;
    border-radius: 30cqh;
    display: flex;
    justify-content: center;
    align-items: center;
}

.yellow{
    background-color: yellow;
    width: 50px;
    height: 50px;
    position: absolute;
    left: 240px;
    bottom: 10px;
    border-radius:4cqh;
    font-size: smaller;
    display: flex;
    justify-content: center;
    align-items: center;

}

 

위 코드를 작성해 보았습니다.

 

red는 자식요소로 Blue를 가지고 있고


Blue는 Green 과 yellow를 자식요소로 <Div>태그로 가지고 있습니다.

 

Html를 조금 공부해보셨다면 RedBox 안에 BlueBox가 들어가있고 

BlueBox안에 Yellow와 GreenBox가 들어간 

 

이러한 구조를 생각 하셨을겁니다.

 

하지만 Postion 속성을 준 값은 어떻게 나왔는지 보시곘습니다


 

위와 같이 GreenBox는 부모요소이며 absolute속성인 blueBox 밖을 나와

가장 가까운 부모요소이며 reiative속성인 RedBox까지 나올수 있게 되었고

 

YellowBox는 absolute속성이기 때문에 부모요소인 Blue와 RedBox 밖으로 나올 수 있게 되었습니다.

 


 

이처럼 Position속성을 정의해주고 Left, Right, Top, Bottom을 이용하여 이동할 수 있습니다.

 

그리고 BlueBox처럼 redBox의 중앙의 위치하고 싶다면 inset이라는 요소를 사용하여 

Left, Right, Top, Bottom를 하나하나 입력하지 않고 쉽게 사용 가능합니다.

 

 

감사합니다.

'HTML, CSS' 카테고리의 다른 글

[HTML/CSS] 개발자 도구  (0) 2024.08.20
[HTML] HTML 기본구조와 태그  (0) 2024.07.17
[CSS] display 속성 : inline, inline-block  (0) 2024.07.15
[CSS] display 속성 : block  (0) 2024.07.15
HTML, CSS란 무엇인가?  (0) 2024.06.19