CSS
CSS float 속성
float를 사용하면 해당 요소를 문서의 흐름과 별개로 취급하여, 왼쪽이나 오른쪽으로 띄울 수 있다. float 적용시, block 속성이 사라진다.
clear 속성
float 요소와 겹치는 경우, float 속성을 해제한다.
CSS float 레이아웃
CSS로 레이아웃을 구현할 때는 float속성을 자주 사용한다.
1. float를 해제할 임의 요소 삽입
<br style="clear : both">
2. 부모에 overflow 설정
.overflow {
overflow: auto;
/* float 요소와 자식 요소의 margin값을 인식 */
overflow: hidden;
}
3. 부모에 float 설정
.float-left {
float: left;
}
4. 가상선택자 이용
위의 3가지 방법은 side effect가 있다. 실제로 가상선택자를 이용하는 방벙이 많이 쓰인다.
/* 가상선택자 after는 해당 요소 뒤에 content가 생성
(임의 요소 삽입과 같은 역할) */
.clearfix::after {
content: ' ';
display: block;
height: 0;
clear: both;
}
CSS 포지션
요소의 위치를 지정한다.
position
- static : 기본값
- relative : static과 같은 순서로 배치되지만, top/right/bottom/left 속성을 이용해 위치 지정 가능하다. 또한 자식 요소가 absolute일때 적용될수있게 해줌
- fixed : 브라우저 창을 기준으로 정렬
- absolute : 자신과 가장 가까운
position
이 static이 아닌 부모를 기준(없을 경우 body 기준)으로 정렬
CSS 가운데 정렬
부모의 가로 가운데 정렬
전체 크기가 정해져 있지 않을 경우, 내용의 width만 지정한 후 좌/우 여백은 auto로 같게 처리한다.
#center {
width: 500px;
margin: 0 auto;
}
부모의 세로 가운데 정렬
부모 요소의 height와 line-height 값이 같을 경우 가운데로 정렬한다.
div {
height: 50px;
}
#center {
width: 500px;
margin: 0 auto;
line-height: 50px;
}
transform을 이용한 가운데 정렬
요소를 position: absolute로 설정한다. top/left를 부모의 50%만큼 이동 후 자신의 높이와 가로의 -50%만큼 위와 왼쪽으로 다시 이동한다. transform을 사용할 경우, 픽셀이 깨져보일 수 있다.
div.relative {
position: relative;
}
#center {
position: absolute;
width: 500px;
height: 50px;
top: 50%;
left: 50%;
/* 자기 기준으로 움직인다 */
transform: translate(-50%, -50%);
}
Semantic Tag
Document 구조를 위해 HTML 5에 추가됐다.
- header : 머릿말, 페이지 맨위나 왼쪽에 삽입
- nav : 내비게이션 링크, 가로/세로 형태의 메뉴에 사용
- section : 콘텐츠 영역
- article : 콘텐츠 내용
- aside : 본문 이외의 내용
- footer : 꼬릿말, 제작자 및 저작권 정보 표시
실습
- 패딩과 마진
- 패딩 : 콘텐츠 영역이기 때문에 클릭할 수 있는 공간을 늘리기 위해 사용
- 마진 : 콘텐츠 밖이기 때문에 단순히 요소 사이를 벌릴 때 사용
- 인라인은 높이 값을 가질 수 없으므로 display 값을 설정
- CSS 선택자 우선순위가 완전히 같을 경우에는 아래에 있는 것이 우선순위가 있다.
- 다방 페이지는 960px 이하는 고려하지 않는 앱이다.
- 다방 페이지 footer의 아래 정렬은 인라인 스타일로 바꿔서 작업해야 한다.