link:css 입력 후 Enter를 누르면 외부 style.css 파일을 연결하는 자동 완성 구문 입력<link>태그의 href 속성값을 css/style.css로 입력style.css파일에 @charset "utf-8" 입력* {
border: 1px solid red;
}
/*모든 html요소의 테두리를 1px 굵기의 빨간색 실선으로 적용*/
<body>
<h1>제목1</h1>
<h2>제목2</h2>
<h3>제목3</h3>
</body>
h1 {
border: 1px solid red; /*제목1 빨강 테두리*/
}
h2 {
border: 1px solid green; /*제목2 초록 테두리*/
}
h3 {
border: 1px solid blue; /*제목3 파랑 테두리*/
}
<body>
<strong>그냥 텍스트 요소</strong>
<p>
<strong>자손 텍스트 요소</strong>
</p>
</body>
p strong {
border: 1px solid blue; /*자손 텍스트 요소만 파랑 테두리*/
}
<body>
<ul>
<li>
자식 요소
<ol>
<li>자손 요소</li>
</ol>
</li>
</ul>
</body>
ul li {
border: 1px solid blue; /*자식, 자손 요소 파랑 테두리*/
}
ul > li {
border: 1px solid blue; /*자식 요소만 파랑 테두리*/
}
<body>
<h1>제목1</h1>
<h2>제목2</h2>
<h3>제목3</h3>
</body>
h1, h2, h3 {
border: 1px solid blue; /*제목1 빨강 테두리*/
}
<body>
<ul>
<li>item1</li>
<li>item2</li>
<li>item3</li>
<li>item4</li>
</ul>
</body>
ul li:nth-of-type(1) {
border: 1px solid red;
}
ul li:nth-of-type(2) {
border: 1px solid green;
}
ul li:nth-of-type(3) {
border: 1px solid blue;
}
ul li:nth-of-type(4) {
border: 1px solid violet;
}
<body>
<ul>
<li>item1</li>
<li>item2</li>
<li>item3</li>
<li>item4</li>
<li>item5</li>
<li>item6</li>
<li>item7</li>
<li>item8</li>
<li>item9</li>
<li>item10</li>
</ul>
</body>
ul li:nth-of-type(2n) {
border: 1px solid blue;
} /*2의 배수 요소만 파랑색 테두리*/
ul li:last-child {
border: 1px solid blue;
} /*마지막 요소만 파랑색 테두리*/
ul li:nth-of-type(odd) { /*홀수 선택자 파랑색 테두리*/
border: 1px solid blue;
}
ul li:nth-of-type(even) { /*짝수 선택자 빨강 테두리*/
border: 1px solid red;
}
<body>
<form>
<input type="text">
<input type="password">
</form>
</body>
input[type="text"] {
border: 1px solid blue;
}
input[type="password"] {
border: 1px solid red;
}
<body>
<h1>HELLO</H1>
</body>
h1 {
border: 1px solid blue;
}
h1:hover {
border: 1px solid red; /*마우스 포인터를 h1 태그 요소 위로 올리면 빨강색 테두리로 색이 바뀜*/
}
h1:before {
content: "before content";
color: blue;
}
h1:after {
content: "after content";
color: red;
}
/*:before는 요소 앞에 가상 콘텐츠를 만들고, :after는 요소 뒤에 가상 콘텐츠를 만든다*/
<h1>
:before <!--파란글씨의 before content가 옴-->
"HELLO"
:after <!--빨간글씨의 after content가 옴-->
</h1>
<body>
<p class="text1">클래스</p>
<p class="text2">선택자</p>
</body>
p.text1 {
border: 1px solid blue;
}
.text2 { /*앞에 태그 부분 생략 가능*/
border: 1px solid red;
}
<body>
<header id="header">header</header>
<section id="section">section</section>
<footer id="footer">footer</footer>
<!--id는 고유의 값이므로 같은 아이디를 여러 개 지정할 수 없다.-->
</body>
header#header {
border: 1px solid red;
}
#section { /*앞에 태그 부분 생략 가능*/
border: 1px solid green;
}
#footer {
border: 1px solid violet;
}
| 속성명 | 속성값 | 설명 |
|---|---|---|
| font-weight | normal | 폰트를 보통 굵기로 표시 |
| bold | 폰트를 굵게 표시 |
| 속성명 | 속성값 | 설명 |
|---|---|---|
| font-size | px | 픽셀 단위로 폰트크기를 설정 |
| rem | 최상위 부모인 <html> 태그를 기준으로 폰트 크기를 설정 | |
| em | 부모 요소를 기준으로 기준으로 폰트 크기를 설정 |
em는
html {
font-size: 16px;
}
article h1 {
font-size: 3rem; /*html 요소 기준으로 3배*/
}
article p {
font-size: 1rem;
}
article a {
font-size: 0.8rem;
}
| 속성명 | 속성값 | 설명 |
|---|---|---|
| font-family | "폰트명" | 폰트의 모양을 설정합니다. |
ul li {
font-size: 40px;
}
ul li:nth-type(1) {
font-family: "돋움" /*한글 폰트는 큰 따옴표 감싸서 표기*/
}
ul li:nth-type(2) {
font-family: selfi
}
[@import] 선택, <style>, </style> 안의 웹 폰트 코드와 그 아래의 font-family 코드 복사| 속성명 | 속성값 | 설명 |
|---|---|---|
| color | 영문명 | 폰트 색상을 영어 색상명으로 표기 |
| #000000 | 폰트 색상을 16진수로 표기 | |
| rgb(0,0,0) | 폰트 색상을 RGB로 표기 |
li:nth-of-type(1){
color:red;
}
li:nth-of-type(2){
color:#ff0000;
}
li:nth-of-type(3){
color:rgb(255,0,0);
}
font-size 텍스트 자체의 높잇값line-height 줄 간격 전체 높잇값| 속성명 | 속성값 | 설명 |
|---|---|---|
| line-height | 실숫값 | 줄 간격을 폰트 크기에 맞추어 실수 배율로 지정 |
| 픽셀값 | 줄 간격을 고정된 px 단위로 지정 |
| 속성명 | 속성값 | 설명 |
|---|---|---|
| text-align | left | 텍스트를 왼쪽 방향으로 정렬 |
| center | 텍스트를 중앙 정렬 | |
| right | 텍스트를 오른쪽 방향으로 정렬 | |
| justify | 텍스트를 양쪽 정렬 |
| 속성명 | 속성값 | 설명 |
|---|---|---|
| text-spacing | 1px | 텍스트의 간격을 px 단위로 지정 |
| 속성명 | 속성값 | 설명 |
|---|---|---|
| width, height | px | 너빗값과 높잇값을 px 단위로 지정 |
| % | 부모 태그를 기준으로 너빗값과 높잇값을 %단위로 지정 | |
| vw | 웹 브라우저의 너비를 기준으로 너빗값과 높잇값을 백분율로 지정 | |
| vh | 웹 브라우저의 높이를 기준으로 너빗값과 높잇값을 백분율로 지정 |
| 속성명 | 속성값 | 설명 |
|---|---|---|
| margin | px | 태그의 바깥쪽 여백을 px 단위로 지정 |
| % | 부모 태그를 기준으로 태그의 바깥쪽 여백을 %단위로 지정 | |
| vw | 웹 브라우저의 너비를 기준으로 태그의 바깥쪽 여백을 백분율로 지정 | |
| vh | 웹 브라우저의 높이를 기준으로 태그의 바깥쪽 여백을 백분율로 지정 |
article:nth-of-type(3){
margin: 20px auto;
}
article:nth-of-type(4){
margin: 20px auto 40px;
}
| 속성명 | 속성값 | 설명 |
|---|---|---|
| padding | px | 태그의 안쪽 여백을 px 단위로 지정 |
| % | 부모 태그를 기준으로 태그의 안쪽 여백을 %단위로 지정 | |
| vw | 웹 브라우저의 너비를 기준으로 태그의 안쪽 여백을 백분율로 지정 | |
| vh | 웹 브라우저의 높이를 기준으로 태그의 안쪽 여백을 백분율로 지정 |
box-sizing: border-box; 설정| 속성명 | 속성값 | 설명 |
|---|---|---|
| border-width | px | 테두리의 굵기 |
| border-style | solid, dashed,dotted | 테두의 모양 |
| border-color | 색상명, 16진수, rgb | 테두리의 색상 |
| border | width style color | 테두리의 굵기, 모양, 색상을 한꺼번에 지정하는 축약형 |
| 분류 | 태그 | 특징 |
|---|---|---|
| 블록 요소 | h1~h6, p, ol, ul, dl, div, header, footer, section, article, aside, nav | 1. 줄을 자동으로 바꿉니다. 2. 너비와 높이를 지정할 수 있습니다. 3. 너비를 지정하지 않으면 부모 요소 너빗값의 100%를 상속받습니다. 4. 블록 요소와 인라인 요소를 모두 묶을 수 있습니다. |
| 인라인 요소 | strong, em, a, span | 1. 자동 줄 바꿈이 되지 않고 옆으로 나열됩니다. 2. 너비와 높이를 지정할 수 없습니다. 3. 인라인 태그를 사용한 텍스트의 크기가 해당 요소의 크기가 됩니다. 4. 인라인 요소만 묶을 수 있습니다. |









| 속성명 | 속성값 | 설명 |
|---|---|---|
| background-color | 영문명 | 배경색을 영어 색상명으로 지정 |
| rgb(0,0,0) | 배경색을 RGB 표기법으로 지정 | |
| #000000 | 배경색을 16진수 표기법으로 지정 |
| 속성명 | 속성값 | 설명 |
|---|---|---|
| background-image | url(이미지 경로) | 배경 이미지 삽입 |
| background-repeat | repeat, repeat-x, repeat-y, no-repeat | 배경 이미지 반복 |
| background-position | 가로축, 세로축 | 배경 이미지의 위치를 지정 |
| background-size | contain, cover | 배경 이미지의 크기를 지정 |
| background-attachment | fixed | 배경 이미지가 움직이지 않게 고정 |
background-size: contain; 이미지의 비율을 유지하면서 영역 안을 전체 이미지로 가득 채움background-size: cover; 이미지가 조금 잘리더라도 영역을 가득 채워 배치background-attachment: fixed; 웹 브라우저 기준으로 고정* {
margin: 0px;
padding: 0px; /*전체 선택자`*`를 이용해 바깥쪽, 안쪽 여백을 0px로 초기화*/
}
ul, ol {
list-style: none; /*목록 앞의 •기호를 없앤다*/
}
a {
text-decoration: none; /* 밑줄 없애기 */
}
float속성은 블록 요소를 강제로 띄워서 화면에 좌우로 배치| 속성명 | 속성값 | 설명 |
|---|---|---|
| float | left | 요소를 띄워서 왼쪽에 배치 |
| right | 요소를 띄워서 오른쪽에 배치 |







| 속성명 | 속성값 | 설명 |
|---|---|---|
| position | relative | 적용된 요소의 현재 위칫값을 기준으로 상대 위치를 지정 |
| absolute | 부모 요소의 특정 구간을 기준으로 절대 위치 지정 | |
| fixed | 웹 브라우저 기준으로 절대 위치 지정 |





relative속성에도 좌푯값을 입력할 수 있지만 원래 위치한 값을 유지한 상태에서 상대적으로 이동한다는 점 주의해야 한다.
실무에서relative속성은 특정 요소의 위치를 배치하는 것보다absolute속성의 기준점을 설정하는 용도로 많이 사용





.box를 기준으로 부모 태그에 position속성을 적용한 요소가 없기 때문에 최상위 태그인 <body>를 기준으로 요소를 오른쪽으로 20px, 아래쪽으로 30px 이동해서 배치

| 속성명 | 속성값 | 설명 |
|---|---|---|
| object-fit | fill | 요소의 비율을 무시하고 가득 채움 |
| cover | 요소의 비율을 유지하면서 여백없이 가득 채움 | |
| contain | 요소의 비율을 유지하면서 콘텐츠가 잘리지 않게 가득 채움 |
| 속성명 | 속성값 | 설명 |
|---|---|---|
| z-index | 순섯값 | 요소에 z축의 순서를 지정. 값이 큰 요소가 위로 올라감 |
| 속성명 | 속성값 | 설명 |
|---|---|---|
| opacity | 0~1 | 요소의 투명도를 지정 |
| 속성명 | 속성값 | 설명 |
|---|---|---|
| box-shadow | 가로축 / 세로축 / 퍼짐 정도 / 색상 | 블록 요소의 그림자를 만듬 |
| text-shadow | 가로축 / 세로축 / 퍼짐 정도 / 색상 | 텍스트의 그림자를 만듬 |
| 속성명 | 속성값 | 설명 |
|---|---|---|
| border-radius | px, % | 모서리를 속성값만큼 둥글게 만듬 |
| 속성명 | 속성값 | 설명 |
|---|---|---|
| gradient | linear-gradient(방향, 색상1, 색상2) | 직선 모양의 그레이디언트를 적용 |
| radial-gradient(색상1, 색상2) | 타원 모양의 그레이디언트를 적용 |
| 속성명 | 속성값 | 설명 |
|---|---|---|
| filter | blur | 요소의 흐림 효과 조절 |
| brightness | 요소의 밝기 조절 | |
| contrast | 요소의 명도 대비 조절 | |
| grayscale | 요소의 흑백 지정 | |
| hue-rotate | 요소의 색상 단계 조절 | |
| invert | 요소의 색상 반전 단계 조절 | |
| saturate | 요소의 채도 조절 | |
| sepia | 요소의 갈색 톤 단계 조절 |

