HTML과 함께 웹 표준의 기본 개념.
html - 문서의 뼈대 만들기
CSS - 뼈대에 디자인 입히기
CSS는 위에 있는 속성보다 아래에 있는 속성이 먼저 적용된다는 특징이 있다.
기본형
선택자{
속성1 : 속성값;
속성2 : 속성값;
}
> 스타일과 스타일시트
스타일 : css문법을 이용해서 속성을 적용한 한 줄
스타일시트 : 수많은 css속성과 값이 모인 하나의 문서
내부 스타일시트
html웹 문서에 < head >태그 안에 < style >태그를 이용해 css를 작성하는 방식. html코드와 css코드가 길어질 경우 작성과 수정이 불편하고, 파일크기가 커진다는 단점이 있어 잘 쓰이지 않는다.
외부 스타일시트★
css문서를 만들고 css폴더에 따로 분리하여 html과 연결해 쓰는 방식. 기본적으로 실무에서 가장 많이 사용되는 방식으로 문서관리가 편하고 수정이 편리하다는 장점이 있다. 외부 스타일시트를 만들었을때 link태그로 html파일과 연결할 수 있다. link태그는 < head >안에 써야 하며 외부 문서(css, 파비콘 등)를 연결할 때 사용하는 태그.
css파일을 html과 연결하는 link태그의 기본형
< link rel="stylesheet" href="외부파일 경로" />
- rel : 연결하려는 파일의 형식을 지정하는 속성.
- href : 파일 경로
> 스타일시트의 우선순위
1번 부터 가장 우선순위가 높다.
p {속성:속성값;}
img {속성:속성값;}
=> 선택자 자리에 태그 이름을 그대로 쓴다!
html에서 이름을 붙일때
< h2 class="title_big" >제목
css에서 불러올때
.title_big{속성 : 값;}
html에서 이름을 붙일때
< h2 id="title">제목
css에서 불러올때
#title{ 속성 : 값;}

block속성의 대표적인 태그로, 투명한 빈 박스 태그이다.
레이아웃의 공간을 나눌 때 사용하며, a태그와 함께 가장 많이 사용되는 태그이다. 예를들어 제목과 본문을 하나로 묶어 공간을 만들거나, 이미지가 들어갈 영역을 지정하는 등 레이아웃을 나누는 역할을 한다.
< div >
제목태그나 단락태그나 이미지 등을 넣음.
</ div >
border-radius : 박스 둥글기 속성
[기본형]
border-radius : 숫자px 또는 %;
[모서리마다 다른 값. 왼쪽 상단부터 시계방향 꼭지점.]
border-radius : 값1 값2 값3 값4;
[왼쪽 상단부터 대각선 값]
border-radius : 값1 값2;
테두리 속성
테두리에 관련된 속성은 block속성을 가진 모든 태그에 사용할 수 있다. 테두리 속성은 테두리 두께(border-width), 테두리 스타일(border-style), 테두리 색상(border-color)를 테두리 속성이라고 하며 이 중 하나라도 없으면 테두리가 나타나지 않는다.
[기본형]
border : 두께 스타일 색상;
padding 안쪽 여백
margine 컨텐츠 사이 여백
[기본형]
padding : 값1 값2 값3 값4;
=> top right bottom left;
padding : 값1 값2;
=> top/bottom left/right;
박스의 크기를 정할때 width, height를 이용하여 영역의 넓이와 높이를 잡는다. 이렇게 정해진 width, height영역을 '컨텐츠 영역'이라고 한다. 컨텐츠 영역에 적용된 padding, border에 따라 box의 크기는 늘어난다. 이때 컨텐츠 영역을 유지한 상태에서 안쪽으로 padding과 border를 적용하고 싶다면 box-sizing 속성을 이용한다.
- box-sizing: content-box;
css box model의 기본으로 width, height 바깥쪽에 padding과 border가 생긴다. 즉, 총 넓이값이 변하며 기본값이다.- box-sizing: border-box;★
padding, border영역을 width,height안쪽으로 포함시킨다. width,height의 크기가 유지된다.

float은 사전적인 의미로 '둥둥 떠다니다'라는 뜻이 있다.
박스를 왼쪽이나 오른쪽으로 배치할 때 사용하는 속성.
[기본형]
float : left;
박스를 왼쪽 배치
float : right;
박스를 오른쪽 배치
float : none;
박스를 배치하지 않음
clear : float을 해제하는 속성
clear속성을 사용하면 해당 박스에 적용된 float속성을 해제할 수 있다.
[기본형]
clear : none;
float을 해제하지 않고 유지한다.
기본값으로 clear속성을 쓰지 않은것과 같다.
clear : left; 왼쪽에 적용된 float 해제
clear : right; 오른쪽에 적용된 float 해제
clear : both; ★ 양쪽으로 전부 해제

visibillity : 영역은 남겨둔 채 요소만 숨기는 속성
display : none을 사용하면 해당 요소가 차지하고 있던 공간과 해당 요소를 모두 숨겨준다. 하지만 영역은 남겨둔채 요소의 모양만 숨기고 싶다면 visibillity를 사용할 수 있다.
부모박스(container)안에 자식박스(item)를 정렬하는 속성.
flex를 적용하는 순간부터 자식박스는 가로로 정렬됨.
이때 자식박스의 가로 넓이의 총 합이 부모박스의 넓이를 넘게 되면 자식박스의 사이즈가 자동으로 줄어들며 부모박스를 채운다. 컨테이너에 flex가 적용되면 자식들을 다양하게 정렬하는 하위 정렬 속성들을 함께 사용할 수 있다.
★ display:flex속성은 부모박스에 적용해야 하며,
이에 따른 하위 정렬속성 또한 부모박스에 적용해야 한다.
< flex 하위 정렬 속성>
1. justify-content
부모박스안에 자식 박스들을 가로로 정렬할때 사용하는 속성.
2. align-items
부모박스안에 있는 자식박스들을 세로로 정렬하는 속성이다.
부모박스를 기준으로 top/middle/bottom쪽으로 정렬한다.
3. flex-direction
자식박스의 나열 방향을 정하는 속성. 자식박스를 block속성처럼 세로로 나열하거나 flex의 기본값처럼 가로로 나열할때 주로 사용한다. 속성값에 -reverse가 붙으면 start와 end의 자리가 바뀌게 된다.
4. flex-wrap : 감싸기 속성
flex를 적용하게 되면 자식요소들이 부모박스의 넓이보다 넓을때 자동으로 자식의 넓이를 무시하고 1줄에 걸쳐 컨텐츠를 작게 찌그러트린다. 이때 자식의 넓이와 높이를 그대로 유지하고 싶다면 flex-wrap을 사용한다.
5. gap : 컨텐츠 사이 여백
gap을 사용하면 flex가 적용된 자식요소 사이에 간격을 만들 수 있다. gap은 컨텐츠 사이에 생기며, 이것을 gutter라고 표현하기도 한다. 값을 1개만 쓰면 row, column방향으로 동일한 간격을 만들어주고, 값을 2개로 나눠 쓰면 앞자리가 column방향, 뒷자리가 row방향이다.
6. flex-flow : 나열방향 + 감싸기 속성
flex-direction(나열속성) + flex-wrap(감싸기속성)을 한꺼번에 선언할때 사용한다. 두 속성의 조합은 많이 사용되기 때문에 한 번에 선언하고 싶을때 flex-flow를 이용할 수 있다. 두 속성의 속성값을 공백으로 구분하여 한 번에 쓴다.
ex) flex-flow : cloumn wrap;
-> 세로방향으로 나열하고, 자식요소 넓이 높이 유지함
flex-flow : row wrap-reverse;
-> 가로방향으로 나열하고, 자식요소 넓이 높이를 유지하며 뒤집는다.
