YJ의 새벽
CSS ( 레이아웃 ( position )) 본문
- position ( 레이아웃 위치 )
--레이아웃 위치는 절대좌표와 상대좌표로 구분.
--절대좌표는 엘리먼트가 브라우저의 페이지 안에 표시되는 방법을 지정하는것.
--절대좌표 = position : absolute ; 로 사용.
--절대좌표는 브라우저 왼쪽 상단이 기준점이 되며 ,
오른쪽 하단의 지정된 좌표로 이동하여 표시
--모든 요소의 기준점은 좌측상단이 시작점 ( 0,0 ) = ( x,y )
--position속성은 지정한 요소들을 원하는 위치에 배치할 수 있는 속성.
- 가장먼저 어디를 기준으로 위치시킬것인지 대상을 정해야한다.
**position : relative = 요소의 위치를 절대값으로 설정 (기준 : 자기 자신 )
**position : absolute = 요소 위치를 상대적인 위치 값으로 설정 (기준 : 부모 기준 )
**position : fixed = 페이지 전체 영역에서 고정 설정 ( 기준 : 브라우저 )
**position : sticky = 부모 영역 안에서만 고정 ( 기준 : 부모 기준 )
**position : static = 문서 흐름에 따른 기본위치 ( 기본값 ) 좌표속성값이 무시됨.
EX ))) position 속성 예제 ( static , relative )
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="utf-8">
<title>position 속성 예제</title>
<style>
/* position 속성의 기본 값 static 기본값유지. */
.static {
width: 200px;
height: 200px;
background: red;
position: static;
}
/* position 속성 값 relative left, bottom 좌표 값 적용 */
.relative {
width: 200px;
height: 200px;
background: blue;
position: relative;
left: 50px;
bottom: 20px;
/* right:-10px; */
/* left:50px;
bottom:-10px; */
}
</style>
</head>
<body>
<div class="static">static</div>
<div class="relative">relative</div>
</body>
</html>
EX ))) position 속성 예제 ( fixed )
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
.parent {
width: 720px;
height: 1000px;
margin: auto;
border: 1px solid #b8064d;
background-color: #f8e1eb;
color:#b8064d;
padding-left:10px
}
.child {
width: 200px;
border: 1px solid #b8064d;
background-color: #f8e1eb;
position: fixed;
top: 100px;
left: 100px;
color:#b8064d;
padding-left:10px
}
</style>
</head>
<body>
<!-- position:fixed 경우 부모 요소의 position 속성과 무관하게 window창 기준. -->
<div class="parent">
<p>fixed 예제</p>
<div class="child">
<p>고정된 div</p>
</div>
<p> 스크롤옮겨도 고정됨.</p>
</div>
</body>
</html>
EX ))) position 속성 예제 ( absolute )
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>절대 좌표 예제</title>
<style>
.parent {
width: 720px;
height: 1000px;
margin: auto;
border: 1px solid #b8064d;
background-color: #f8e1eb;
color:#b8064d;
padding-left:10px
}
.child {
width: 200px;
border: 1px solid #b8064d;
background-color: #f8e1eb;
position: absolute;
top: 30px;
left: 50px;
color:#b8064d;
padding-left:10px
}
</style>
</head>
<body>
<!--
position:absolute 경우, 부모 요소가 static 외 속성값 갖는 position 속성 있으면
해당 부모 요소 기준.
부모나 조상 중 position:static 외의 속성값을 취하는 position 속성 없으면,
window 창 기준.
-->
<div class="parent">
<p>absolute예제</p>
<div class="child">
<p>자식 요소</p>
</div>
<p>부모 요소</p>
</div>
</body>
</html>
EX )))) position 예제 ( sticky )
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="utf-8">
<title>Title</title>
<style>
.wrap {
height: 100px;
overflow: hidden;
overflow-y: scroll;
}
.inner {
height:130px;
background: skyblue;
}
.box {
position: sticky;
top: 20px;
left: 20px;
width: 50px;
height: 50px;
background: #000;
}
</style>
</head>
<body>
<div class="wrap">
<div class="inner"> <!-- 부모 요소 inner (기준) -->
<div class="box"></div> <!-- 자식 요소 box (고정될 요소) -->
</div>
</div>
</body>
</html>
EX )))) position total
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>CSS Position</title>
<style>
.container {
border: 3px solid red;
width: 100%;
height: 1000px;
position: relative;
}
.position {
width: 150px;
height: 50px;
top: 100px;
left: 120px;
}
.static {
border: 3px solid black;
position: static;
}
.relative {
border: 3px solid green;
position: relative;
}
.fixed {
border: 3px solid orange;
position: fixed;
}
.absolute {
border: 3px solid blue;
position: absolute;
}
</style>
</head>
<body>
<h1>정적 위치(static position) 지정 방식의 특징</h1>
<div class="container">
<div class="static position">정적 위치(static position)</div>
<div class="relative position">상대 위치(relative position)</div>
<div class="fixed position">고정 위치(fixed position)</div>
<div class="absolute position">절대 위치(absolute position)</div>
</div>
</body>
</html>
*** z-index : z축 (3차원) + 인덱스(순서)
--해당요소의 순서를 제어하는 속성.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="utf-8">
<title>Title</title>
<style>
.box01 {
position: relative;
width: 200px;
height: 200px;
background-color: red;
z-index: 2;
}
.box02 {
position: relative;
left: 10px;
top: -70px;
width: 200px;
height: 200px;
background-color: blue;
z-index: 1;
}
</style>
</head>
<body>
<div class="box01">box01</div>
<div class="box02">box02</div>
</body>
</html>
'WebFront_ > HTML,CSS' 카테고리의 다른 글
CSS ( 반응형 웹디자인 ) (0) | 2023.02.10 |
---|---|
CSS ( 레이아웃, flex , grid ) (0) | 2023.02.08 |
CSS ( 레이아웃 ( float )) (0) | 2023.02.07 |
CSS ( 폼 (input,로그인,회원가입)) (0) | 2023.02.06 |
CSS ( 테이블 ) (0) | 2023.02.03 |