CSS 는 Cascading Style Sheets 의 약자로 웹페이지를 꾸미려고 작성하는 코드이다.
CSS 는 HTML 처럼 프로그래밍 언이도 아니고 마크업 언어도 아닌 Style sheet 언어이다.
body { color: red; font-size: 30px; }
body : 셀렉터(Selector)
{ } : 선언블록 (Declaration block)
color: red; : 선언 (Declaration)
color : 속성명 (Property)
red : 속성값 (Property Value)
HTML 에 CSS 를 적용시키는 방법은 3가지가 있다.
HTML 태그의 style 속성에 CSS 코드를 넣는 방법이다.
ex) <p style="color: blue">My New Car</p>
이 방법은 꾸미는데 한계가 있고 재사용이 불가능하다는 단점이 있다.
HTML 문서 안의 안에 CSS 코드를 넣는 방법이다.
<style> h1 { color: blue; } </style>
이 방법은 HTML 문서 안의 여러 요소를 한번에 꾸밀 수 있다는 장점이 있으나
또 다른 HTML 문서에는 적용할 수 없다는 단점이 있다.
별도의 CSS 파일을 만들고 HTML 에 link 태그를 이용하여 CSS 파일을 불러오는 방법이다.
<link rel="stylesheet" href="index.css" />
h1 { color: red; }
분리를 통해 깔끔하게 유지보수를 쉽게 할 수 있다는 장점을 가지고 있다.
id 와 class 셀렉터는 특정 요소를 대상으로 스타일을 적용하기 위함이다.
수치를 정하는 속성의 크기는 상대단위와 절대단위로 구분된다.
규격이 정해져 있는 단위를 의미하며, 출력장치의 물리적 속성을 아는 경우 효율적이다.
고정되지 않고 어떤 기준에 따라 유동적으로 바뀔 수 있는 단위를 의미하며
다양한 플랫폼이 등장한 지금 그 플랫폼 간의 호환성을 유지하는데 유리하다.
문서의 레이아웃을 계산할 때, 브라우저의 렌더링 엔진은 표준 CSS 기본 박스 모델에 따라 각각의 요소를 사각형 박스로 표한한다.
하나의 박스는 네 부븐(영역)으로 이루어져 있고 각 영역을 contents 영역, padding 영역, border 영역, margin 영역이라 부른다.
네 방향 바깥 여백 영역을 설정한다.
한 개의 값은 모든 네 면의 여백을 설정
두 개의 값을 지정하면 첫 번째는 위와 아래, 두 번째는 좌우 여백을 설정한다.
세 개의 값을 지정하면 천 번째는 위, 두 번째는 좌우, 세 번째는 아래 여백을 설정한다.
네 게의 값을 지정하면 각각 상우하좌 순서(시계방향)로 여백을 지정한다.
네 방향 안쪽 여백 영역을 설정한다. (margin 과 값 설정 동일)
box-sizing 속성은 요소의 너비와 높이를 계산하는 방법을 지정한다.
CSS 박스 모델의 기본값에서 지정한 너비와 높이는 요소의 컨텐츠 박스 크기에만 적용된다.
요소에 border 이나 padding 값이 있으면 그 값이 너비와 높이에 더해저 화면에 나타난다.
따라서 크기를 설정할 때, 원하는 크기를 얻으려면 border, padding 값을 고려해야 한다.
box-sizimg 속성을 사용해 이 방식을 바꿀 수 있다.
.box {width: 350px; border: 10px solid black;}을 적용한 요소의 너비는 370px
.box {width: 350px; border: 10px solid black;}을 적용한 요소의 너비는 350px
글자의 색상을 설정한다.
ex) color: red; color: #555555; color: #961f1f;
글자의 폰트를 설정한다.
- font-weight : 텍스트 굵기를 설정한다.
ex) font-weight: bold; // 굵게 font-weight: normal; // 일반 굵기 font-weight: bolder; // 가장 굵게
- font-style : 텍스트 기울임을 설정한다.
ex) font-style: italic;
- font-family : 글씨체를 설정한다.
ex) font-family: "Nanum Gothic";
텍스트 및 블록의 외부에 선을 그릴 때 사용한다.
구조 : border: font-width font-style font-color;
ex) border: 1px solid #ccc; // 굵기(1px) 선스타일(실선) 색상(#ccc)
- font-style 에 들어갈 수 있는 값
- solid : 실선
- dashed: 일반 점선
- dotted: dashed 보다 좁은 점선
- double: 두 줄로 구성된선 (3px 이상 굵기부터 표현됨)
- groove: 그림자 적용된 선
- inset: 그림자 적용된 선 (안쪽)
- outset: 그림자 적용된 선 (바깥쪽)
- ridge: 튀어나온 느낌의 선 (2px 이상 굵기부터 표현됨)
블록이나 텍스트의 배경을 지정할 때 사용한다.
다양한 속성을 한꺼번에 적용시킬 수 있다.
하지만 적용된 옵션의 가독성 향상을 위해 속성을 개별적으로 지정해 주는 것이 좋다.// 01. 한번에 적용 // .class { background: url(./image/sdfasdfasdf.jpg) no-repeat 50% 50% } // 02. 개별적으로 적용 // .class { background-image: url(./image/sdfasdfasdf.jpg); background-repeat: no-repeat; background-position: 50% 50%; }
- background 내부 속성
- background-color: 배경색 지정
- background-image: 배경이미지 지정
- background-position-x: 배경이미지의 가로 위치 지정
- background-position-y: 배경이미지의 세로 위치 지정
- background-repeat-x: 배경이미지의 가로 반복여부 지정
- background-repeat-y: 배경이미지의 세로 반복여부 지정