1) CSS 포지셔닝이란

 

css포지셔닝은 브라우저 화면 안에 각 컨텐츠 영역을 어떻게 배치할지를 결정하는 것을 말하며 관련 속성으로는 

 

float와 position 속성이 있다.

 

 

 

2) box-sizing 속성

 

box-sizing 속성은 박스 너비 기준 정하는 속성이다.

 

즉, width 속성값을 컨텐츠 영역너비값으로 사용할지, 패딩과 테두리까지 포함시킬지 결정할 수 있다.

 

기본형은 아래와 같다.

 

box-sizing: content-box | border-box

 

속성값 설명
content-box width속성 값을 컨텐츠 영역 너비 값으로 사용
border-box width속성 값을 컨텐츠 영역에 테두리까지 포함시켜 사용

 

3) float 속성

 

float속성은 왼쪽이나 오른쪽으로 배치시키는 속성이다.

 

기본형은 아래와 같다.

 

float : left | right | none

 

속성값 설명
left 해당 요소를 문서의 왼쪽으로 배치
right 해당 요소를 문서의 오른쪽으로 배치
none 좌우 어느 쪽으로도 배치시키지 않는다

아래 예제 소스와 결과를 보여준다.

div태그는 블록레벨요소로서 기본적으로 한 줄에 하나씩만 표현되지만 float속성을 주게 되면 한 줄에 여러개 표현이 가능하게 된다. 

위의 예제는 3개 div중에서 2개 div는 float속성에 left를 마지막 하나는 right 값을 지정했을 때 결과를 보여준다.

 

아래 예제는 3개 div중에서 1개는 float:left, 1개는 float:none, 나머지 하나는 float:right 값 지정했을 때 소스와 결과를 보여준다.

결과에서 볼 수 있듯이 float:none 결과값은 해당 div태그를 해당 줄의 끝까지 가도록 설정된다. 그 다음 div는 float:right 지정하였으며 결과는 새로운 줄에서 오른쪽에 위치하게 된다.

 

4) position 속성

position 속성은 웹문서 안에 요소들을 자유자재로 배치할 수 있게 하는 속성이다.

기본형은 아래와 같다

position : static | relative | absolute | fixed

속성값 설명
static 요소를 문서의 흐름에 맞추어 배치한다
relative 이전 요소에 자연스럽게 연결해 배치하되 위치를 지정할 수 있다
absolute 원하는 위치를 지정해 배치한다.
fixed 지정한 위치에 고정해 배치한다

* static

position 속성의 기본값이며 요소를 나열한 순서대로 배치한다. 특정위치를 지정하는 속성들(top, left 등) 은 사용할 수 없다. 단, float 속성은 함께 사용할 수 있다.

 

* relative

요소를 나열한 순서대로 배치할 수 있으며 특정위치를 지정하는 속성들(top, left 등)을 함께 사용할 수 있다.

위치를 지정하는 속성을 사용할 때 좌표 계산은 static으로 설정시 배치되어야 할 위치를 기준으로 하여 이동하게 된다.

relative 관련 예제로 소스와 결과를 올린다

 

아래 예제는 relative 사용하지 않은 경우를 먼저 보여준다.

소스에서 id1과 id2의 width를 각각 30%, 70%로 주었고 float:left, float:right로 각각 설정했다

width를 30%, 70% 설정했다는 의미는 브라우저 폭 기준으로 30%, 70% 크기를 계산해서 width로 셋팅했다는 의미이다.따라서 결과적으로 "박스1" 블록이 브라우저 전체폭의 30%를 차지하고 바로 옆에 이어서 "박스2"블록이 70%폭을 차지하면서 배치된다.

 

이 상태에서 박스2의 left 시작 위치를 박스1에서부터 10px을 띄우고 싶은 경우

position : relative로 설정한 후 left : 10px; 로 지정할 수 있다. 이렇게 하면 박스2의 원래 위치 기준으로 10px 이동하여 배치된다.

 

아래는 해당 소스와 결과이다.

* absolute 

해당 속성을 사용하면 left, right, top, bottom 속성값을 이용해 요소를 원하는 위치에 배치할 수 있다.

이때 기준이 되는 위치는 가장 가까운 부모 요소 중 position속성이 relative 또는 absolute인 요소이다.

그래서 보통 absolute 사용하려면 해당 요소를 감싸는 div를 만들고 position : relative 또는 absolute로 지정한 후 사용한다.

아래는 예제로 소스와 결과를 보여준다.

 

위 예제에서 아이디 RB, LT 요소들은 부모 요소인 child_container 위치를 기준으로 배치된다.

또한 child_container 요소는 부모요소인 container 위치를 기준으로 배치된다.

만일, child_container의 position이 static이라면 RB, LT 요소들은 relative나 absolute 속성값을 가지고 있는 가장 가까운 부모 요소인 container 요소의 위치를 기준으로 배치된다.

 

* fixed 속성값

fixed 속성값은 문서의 흐름과 상관없이 위치를 좌표로 결정하지만 좌표는 브라우저 창 기준이 된다.

따라서 브라우저 창이 스크롤 되더라도 그대로 위치를 유지한다.

'프로그래밍 > html+css' 카테고리의 다른 글

css와 박스모델  (0) 2019.07.28
텍스트 관련 스타일  (0) 2019.07.27
css와 자바스크립트를 이용한 우측툴바 컨트롤 제작  (0) 2019.07.04

+ Recent posts