Space
article thumbnail
Published 2023. 4. 14. 23:55
[CSS] Position CSS
반응형

Position의 속성

 

CSS Position에는 Static, relative, absolute, fixed 라는 4가지 속성이 있습니다.

 

예제를 통해 4가지 속성을 정확히 알아보겠습니다.


static (default value)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <div id="other">other</div>
    <div id="parent">parent
        <div id="me">me</div>
    </div>
</body>
</html>

HTML Code

 

 

style.css & result (1)

 

 

style.css & result (2)

 

 

Static (default value)

 

me에 top, left : 50px 입력 한 경우에도 변화가 없습니다.

 

 

static은 직속 부모를 기준으로 위치가 정해지고,

기존의 위치에 고정됩니다.

(= offset의 영향을 받지 않습니다.)

 


relative

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <div id="other">other</div>
    <div id="parent">parent
        <div id="me">me</div>
    </div>
</body>
</html>

HTML Code

 

 

style.css & result (1)

 

 

style.css & result (2)

 

 

relative

 

me에 top, left : 50px 입력 시 변화가 있습니다.

 

relative는 직속 부모를 기준으로 위치가 정해지고,

기존의 위치에서 효과가 적용됩니다.

(= offset의 영향을 받습니다.)

 


fixed

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <div id="other">other</div>
    <div id="parent">parent
        <div id="me">me</div>
    </div>
    <div id="large">large</div>
</body>
</html>

HTML Code

 

 

style.css & result (1)

 

 

style.css & result (2)

 

 

fixed

 

직속 부모를 기준으로 위치가 정해지고,

스크롤에 상관없이 화면에 고정시킵니다.

 

 

특이하게 fixed는 block level element가 아닌

부모의 속성과 상관없이 inline element 속성을 가집니다.

(= absolute)

 


absolute (1)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <div id="other">other</div>
    <div id="parent">parent
        <div id="me">me</div>
    </div>
</body>
</html>

HTML Code

 

 

style.css & result (1)

(= position : static;) (default value)

(me에 top, left 등 값을 변화 주어도 위치가 변하지 않습니다.)

 

 

style.css & result (2)

(offset 입력 전)

 

 

style.css & result (3)

(offset 입력 후)

 

조금 있다가 나오는 if) 참고

(부모가 전부 static이라면...)

 

 

특이하게 absolute는 block level element가 아닌

부모의 속성과 상관없이 inlinde element의 속성을 가집니다.

(= fixed)

 


absolute (2)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <div id="other">other</div>
    <div id="great_grand">great grand
        <div id="grand">grand
            <div id="parent">parent
                <div id="me">me</div>
            </div>
        </div>
    </div>
</body>
</html>

HTML Code

 

 

style.css & result

(= position : absolute;)

 

 

parent(me의 부모)의 left : 50px에 위치하는 것이 아닌

grand(me의 부모의 부모)의 left : 50px에 위치합니다.

 

 

position이 static(default value)이 아닌

부모 중에 자식(me)의 기준에서

가장 가까운 relative 부모를 기준으로 위치가 정해집니다.

 


if ) 부모들이 전부 static인 경우

style.css & result (1)

(부모가 전부 statice이고, offset 입력 전)

 

직속 부모의 위치에 영향을 받습니다.

 

 

style.css & result (2)

(부모가 전부 static이고, offset 입력 후)

 

html (최상위 부모)를 기준으로 위치가 정해집니다.

 

반응형

Summary (요약)

 


 

 

Position을 알아보는 시간이었습니다.

틀린 내용은 댓글로 알려주시면 감사하겠습니다.

 

 

반응형
profile

Space

@Space_zero

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!