Position이란? element를 배치하는 방법을 지정하는 속성입니다.
<div style="position: relative; top: 100px">안녕!</div>
<h1>헬로우</h1>
absolute는 element가 문서의 일반적인 흐름을 따르지 않습니다. 대신 가장 가까운 위치에 있는 조상 element(static 이 아닌)에 상대적 위치로 배치됩니다 .조상 element가 없으면 문서 본문(body)을 기준으로 삼고 페이지 스크롤에 따라 움직입니다.
<style>
.outer{
position: absolute;
right: 0;
top: 0;
width: 100px;
height: 100px;
background: aqua
}
section {
position: relative;
width: 300px;
height: 500px;
margin: 0 auto;
border: 1px solid red
}
.box{
position: absolute;
right: 0;
top: 0;
width: 100px;
height: 100px;
background: salmon
}
.box:last-child{
background-color: beige
}
</style>
<div class="outer">박스!</div>
<section>
<div class="box">박스!</div>
<div class="box">박스!</div>
</section>
현재 class outer에 대한 부모는 body이다.그러니 right:0을 하니 상단 우측에 “안녕하세요”가 붙어 있는 결과가 보인다
fixed 역시 absolute와 마찬가지로 element가 문서의 일반적인 흐름에서 제거됩니다. 대신, 스크린의 뷰포트(viewport)를 기준으로 한 위치에 배치됩니다. 즉, 스크롤되어도 움직이지 않는 고정된 자리를 갖게 됩니다.
<style>
*{
margin: 0;
padding:0;
}
section{
height: 200vh;
background-color: blue;
}
nav{
width: 100%;
height: 30px;
background-color: red;
color: #fff;
position: fixed;
top: 0;
left:0;
right:0;
}
</style>
<body>
<section>
<nav>메뉴 fixed</nav>
</section>
</body>
<a>, <i>, <span>, <abbr>, <img>, <strong>, <b>, <input>, <sub>, <br>, <code>, <em>, <small>, <tt>, <map>, <textarea>, <label>, <sup>, <q>, <button>, <cite>
<p>, <h1>, <h2>, <h3>, <h4>, <h5>, <h6>, <ul>, <ol>, <dl>, <pre>, <hr />, <blockquote>, an<address>
<style>
nav{
font-size: 0;
}
nav a {
width: 50px;
height: 50px;
border: 1px solid red;
display:inline-block;
font-size: 16px;
}
}
</style>
<nav>
<a href="#">One</a>
<a href="#">Two</a>
<a href="#">Three</a>
</nav>
div{
width: 150px;
height: 150px;
}
.box-left{
background-color: green;
width: 150px;
height: 150px;
float: left;
}
.box-right{
background-color: blue;
float: right;
}
<div class="box-left">박스1</div>
<p>
<span>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Debitis eligendi libero sequi veniam eius, eveniet recusandae saepe porro earum consequuntur. Ullam nesciunt, commodi fugiat sed voluptatem, consequuntur unde rerum atque.</span>
<span>Laborum maiores, rerum. Officiis a doloribus quasi quam. Culpa fugiat itaque dolor impedit nostrum velit aliquam ducimus quidem dolorem odit numquam non architecto dicta quos quasi, suscipit ea, explicabo perferendis.</span>
<span>Beatae sed optio explicabo ducimus, consequatur id delectus temporibus quas quis excepturi nesciunt veniam ipsa amet iste quam inventore at accusantium minima recusandae doloribus odio placeat, numquam facere? Molestias, modi!</span>
<span>Quam dolor ex quibusdam, quis incidunt excepturi voluptatem fugiat unde sapiente facere veniam accusamus doloribus non dicta numquam dolores impedit error, molestias omnis! Non sint, perspiciatis nesciunt eveniet illo a.</span>
</p>
<div class="box-right">박스2</div>
// ...위의 코드와 동일
//p에 clear를 주면 된다.
p{
clear:both;
}