
CSS는 Cascading Style Sheets를 의미한다.
CSS문서(코드) 자체는 독립적으로 존재할 수 있지만, 그 목적이 구조화된 HTML 문서의 스타일을 정의하는 데 있으므로 HTML 문서가 없는 CSS 문서는 사실상 의미가 없다.
HTML: 웹 문서의 콘텐츠를 구성하는 언어
CSS: 웹 문서의 콘텐츠에 스타일을 추가하는 언어(색상, 크기, 위치 등)
-> HTML과 함께 사용되지 않는 CSS는 단순 텍스트일 뿐이며, 웹브라우저를 통해 결과물을 확인하기 위해서는 반드시 HTML문서 작성이 선행되어야 합니다.
주석은 사람에게는 보이지만, 컴퓨터(웹브라우저)에게는 보이지 않는 코드이다.
주로 코드에 대한 메모를 남기기 위한 용도로 사용된다.
HTML문서에 CSS 문서(코드)를 적용하고자 할 떄는 다음과 같은 방식들을 사용할 수 있다.
태그에 style 속성을 추가하여 요소에 직접적으로 스타일을 정의하는 방식. 따라서 선택자는 필요 없다. 웹 콘텐츠와 스타일시트를 분리하기 위해서는 사용하지 않는 편이 좋다.
HTML 문서에 <style></style>태그를 추가하여 그 안에 CSS코드를 작성할 수 있다.
확장자가 *.css인 스타일시트 파일을 생성해 그 안에 CSS코드를 작성하고, HTML문서에 이를 연결해줄 수 있다. 이때는 <link>태그를 사용한다.
<link> 채그는 HTML 문서의 <head></head> 내부에서 사용해야 합니다.선택자: 어떤 요소에 스타일을 적용 할 것인지에 대한 정보
모든 요소를 선택한다.
*(애스터리스크)는 '문서 내의 모든 요소'를 의미하는 기호이다.
주어진 이름을 가진 요소를 선택한다. '유형 선택자'라고도 한다. 주어진 이름을 가진 요소가 다수일 경우, 해당 요소들을 모두 선택한다.
주어진 class 속성값을 가진 요소를 선택한다. 주어진 class 속성값을 가진 요소가 다수일 경우, 해당 요소를 모두 선택한다.
주어진 id 속성값을 가진 요소를 선택한다. id는 고유한(unique) 식별자 역할을 하는 전역 속성이다.
다양한 유형의 요소를 한꺼번에 선택하고자 할 때 사용한다. 쉼표(,)를 이용해 선택자를 그룹화한다.
선택자가 겹치는 경우, 기본적으로 나중에 작성된 스타일이 적용된다. 선택자가 다르지만 요소가 겹치는 경우, 선택자 우선순위에 의해 적용될 스타일이 결정된다.
선택자 우선순위: 아이디 선택자 > 클래스 선택자 > 태그 선택자
요소를 구성하는 텍스트의 글꼴을 정의한다. 글꼴명을 속성값으로 지정한다. 여러 개의 글꼴을 연달아 기입하여 우선 순위를 지정할 수 있다.
수치와 단위를 지정해 글자의 크기를 정의할 수 있다.
<html>태그의 font-size에 대응하는 상대적인 크기블록 내에서 텍스트의 정렬 방식을 정의한다. 미리 정의된 키워드 값을 지정한다.
텍스트의 색상을 정의한다. 다양한 방법으로 색상을 지정할 수 있다.
블록 레벨 요소: 자기가 속한 영역의 너비를 모두 차지하여 블록을 형성한다. (ex.div,p,h1 등)
인라인 요소: 자기에게 필요한 만큼의 공간만 차지한다.(ex.span,a 등)
display 속성은 요소를 블록과 인라인 요소 중 어느 쪽으로 처리할지 정의한다.
border 속성을 사용하면 요소가 차지하고 있는 영역에 테두리를 그릴 수 있다. border 속성에는 속성값으로 테두리의 두께, 모양, 크기 등을 함께 지정할 수 있는데, 이러한 속성을 '단축속성'이라 한다.
브라우저가 요소를 렌더링 할 때, 각각의 요소는 기본적으로 사각형 형태로 영역을 차지하게 된다. 이 영역을 '박스'라 표현하며, CSS는 박스의 크기, 위치, 속성(색,배경,테두리 모양 등)을 결정할 수 있다.
하나의 박스는 다음 네 개의 영역으로 구성된다.
box-sizing 속성은 요소의 너비(width)와 높이(height)를 계산하는 방법을 지정한다.
배경(background)은 콘텐츠의 배경을 정의한다.
float 속성은 요소가 문서의 일반적인 흐름에서 제외되어 자신을 포함하고 있는 컨테이너의 왼쪽이나 오른쪽에 배치되게 한다.
clear 속성은 float 요소 이후에 표시되는 요소가 float을 해제(clear)하여 float 요소의 아래로 내려가게 할 수 있다.
position은 문서 상에 요소를 배치하는 방법을 정의한다.
flexbox란 박스 내 요소 간의 공간 배분과 정렬 기능을 제공하기 위한 1차원 레이아웃 모델이다.
상속(Inheritance)이란 하위 요소가 상위 요소의 스타일 속성값을 물려받는 것을 의미한다.
공용 키워드
z-index 속성은 요소의 쌓임 순서(stack order)를 정의할 수 있다.
Flexbox(Flexible Box)는 요소들을 가로 또는 세로 방향으로 자유롭게 정렬하고 공간을 배분하기 위해 사용하는 1차원 레이아웃 모델입니다.
display: flex;가 적용된 부모 요소display: flex;:Flex 컨테이너로 정의 (필수)flex-direction: 주축의 방향 설정(row,colums,row-reverse,column-reverse)justify-content: 주축 (가로) 정렬(flex-start,center,space-between,space-around)align-items: 교차축(세로) 정렬(flex-start,center,stretch)flex-wrap: 줄 바꿈 여부(nowrap,wrap)flex: 아이템의 증가, 감소, 기본 크기를 한 번에 설정(flex: 1;)align-self: 특정 아이템 하나만 개별적으로 세로 정렬