▶ first-of-type
html
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>03-01-of-type-and-child</title>
<link rel="stylesheet" href="./index.css">
</head>
<body>
<div class="container">
<h1>제목입니다.</h1>
<p>첫번째 p입니다.</p>
<p>두번째 p입니다.</p>
<span>첫번째 span입니다.</span>
<p>세번째 p입니다.</p>
<p>네번째 p입니다.</p>
</div>
</body>
</html>
css
```css
* {
box-sizing: border-box;
}
.container p:first-child {
background-color: red;
/* 컨테이너 안에 첫번째 형제요소가 p가 아니기 때문에 적용이 안됨 */
}
.container p:first-of-type {
background-color: blue;
/* 컨테이너 안에 첫번째 p태그에 적용 */
}
.container p:last-of-type {
background-color: yellow;
/* 컨테이너 안에 마지막 p태그에 적용 */
}
.container p:nth-of-type(2) {
background-color: green;
/* 컨테이너 안에 두번째 p태그에 적용 */
}
.container span:first-of-type {
font-weight: 600;
text-decoration: underline;
/* 컨테이너 안에 첫번째 스팬태그에 적용 */
}
```
▶ active
▶ focus
▶ visited
A ~ B {
property : value
}
▶ flex-wrap : no wrap(기본값)
▶ flex-wrap : wrap
- align-items는 flex-items이 한 줄일 때 우선 적용
- item이 두 줄 이상인 상태에서 정렬을 원하시면, align-content라는 속성을 이용해주시면 됩니다.
- flex-flow flex-direction과 flex-wrap을 합침
▶ flex-item
![](https://velog.velcdn.com/images/middledown12/post/d413f9b7-5504-4c10-a0fc-ccfab71846f9/image.png)
- order - item의 순서 지정
- flex-basis - item의 기본 사이즈 지정
- flex-shrink - 설정된 값(숫자)에 따라 flex-container 요소 내부에서 flex-item 요소의 크기 축소
- flex-grow - flex-item 요소가 flex-container 요소 내부에서 할당 가능한 공간 비율 선언
html
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>03-03-flex-wrap</title>
<link rel="stylesheet" href="./index.css">
</head>
<body>
<div class="container">
<div>box1</div>
<div>box2</div>
<div>box3</div>
<div class="box4">box4</div>
<div class="box5">box5</div>
<div>box6</div>
<div>box7</div>
<div>box8</div>
</div>
</body>
</html>
css
```css
* {
box-sizing: border-box;
}
.container {
width: 600px;
height: 500px;
background-color: #eeeeee;
border: 2px solid red;
padding: 10px;
display: flex;
flex-wrap: wrap;
align-content: space-evenly;
}
.container div {
background-color: blue;
margin: 5px;
width: 200px;
color: white;
}
.box4 {
order: 3;
/* 기본값은 order: 0; 이여서 order: 1; 값을가진 box5가 오고 다음 box4가 온다 */
}
.box5 {
order: 1;
}
```
상속 되는 속성
color, font-family, font-size 등
상속 되지 않는 속성
padding, margin, border 등
우선 적용 (Cascading)
선택자{
/* 폰트이름에 공백이 있는 경우 */
font-family:"폰트 이름","폰트 이름2","폰트 이름3"
/* 폰트이름에 공백이 없는 경우 */
font-family:폰트이름,폰트이름2,폰트이름3
/* 혼용해서 사용할 경우 */
font-family:폰트이름,"폰트 이름2"
}
폰트파일 직접 다운로드
@font-face
외부 서비스에서 제공하는 링크를 이용
@import
html
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>04-02-webfont</title>
<link rel="stylesheet" href="./index.css">
</head>
<body>
<div class="fonts">
webfont연습입니다. 구글폰트를 이용해 적용 해보겠습니다.
</div>
</body>
</html>
css
```css
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100&display=swap');
* {
font-family: 'Noto Sans KR', sans-serif;
font-size: 40px;
}
```
font-size : 18px;
- 텍스트의 크기 조정font-weight : 600;
- 텍스트의 두께 지정text-decoration : underline|overline|line-through
- 텍스트에 장식용 선 추가color : red;|#000000;|rgb(0,0,0);
- 텍스트의 색상 변경text-transform: cpaitalize;|none;|uppercase;|lowercase;
- 텍스트의 대소문자 변경line-height : 1.8;|50px;
- 텍스트의 행간을 설정
letter-spacing : 20px;|0.5em;
- 텍스트의 자간을 설정
word-spacing : 20px;|0.5em;
- 텍스트의 단어 간 간격을 설정
text-align : left;|center;|right;|justify;(양측정렬)
- 텍스트 가로정렬
vertical-align : top;|middle;|bottom;
- 인라인요소나 표 안에서 텍스트의 세로 정렬
text-indent : 50px;|10%;
- 텍스트의 들여쓰기 설정
word-break : keep-all;(어절단위)|break-all;(음절단위)
- 텍스트가 넘쳤을 때, 어떻게 줄을 바꿀지 설정overflow-wrap : break-word;
- 단어가 콘텐츠 박스 영역 밖으로 넘쳤을 때, 줄바꿈 여부 설정overflow : hidden;|scroll;|auto;
- 콘텐츠가 커서 보여주기 힘들 때 어떻게 보여줄 지 설정text-overflow : clip;|ellipsis;
-줄바꿈을 하지 않을 때, 요소 밖으로 넘치는 text 설정출처 : 코드캠프