오늘은 평소에 개발하며 가장 궁금했던 절대단위와 상대단위의 차이에 대해 학습하였다. CSS는 이해가 잘 안되는 경우, 직접 브라우저에 그려보며 부족한 부분을 채워나가는 학습법이 가장 효과적인것 같다.
- HTML 요소의 부모, 자식 관계
- 선택자 (가상 클래스, 가상 요소, 형제 요소)
- justify-content / align-items
- flex-wrap
- flex-item의 속성
- 상속
- 웹폰트
- 폰트
- 단위
:first-child
<div class="container"> <h1>이렇게</h1> <p>자식이 있다면?</p> </div>
.container h1:first-child{ background :red }
:first-of-type
<div class="container"> <h1>이렇게</h1> <p>자식이 있다면?</p> <p>이번엔</p> <h2>다른걸</h2> <p>해볼거야</p> </div>
.container p:first-of-type{ background :red }
:nth-child(n)
<div class="container"> <p>1번</p> <p>2번</p> <p>3번</p> <p>4번</p> <p>5번</p> </div>
.container p:nth-child(3){ color : red; }
:nth-of-type(n)
<div class="container"> <p>1번</p> <p>2번</p> <p>3번</p> <span>4번</span> <span>5번</span> <p>6번</p> <span>7번</span> </div>
.container p:nth-of-type(4) { color: red; }
:active
활성화된 요소를 선택
하는 가상 클래스 선택자:focus
focus를 받고있는 입력창들의 요소를 선택
하는 가상 클래스 선택자:visited
사용자가 방문한 적 있는 링크를 선택
하는가상 클래스 선택자:before, :after
html요소를 수정하지 않고, css만으로 가상 요소를 추가해 선택할 수 있다
content요소
를 작성해야한다!! <div class="box1"> 나는 박스1입니다. </div>
.box1{ width : 200px; height: 300px; background-color: yellow; } .box1:after{ content:"나는 박스2입니다."; display: block; background-color: blue; }
A ~ B {}
<div class="container"> <p class="text">나는 text입니다.</p> <span>나는 span입니다.</span> <span>나는 span입니다.</span> <p>나는 p입니다.</p> <p>나는 p입니다.</p> </div>
.text ~ span { background : red }
justify-content
align-items
flex-wrap : nowrap
flex wrap : wrap
item의 가로 사이즈가 container의 가로 사이즈를 넘기면,
자연스럽게 다음 줄로 넘어간다.
flex-flow
order
flex-basis
flex-shrink
flex-grow
Cascading 우선순위
에 의해 결정된다상속 되는 속성, 안되는 속성
font-family
.선택자{ /* 폰트이름에 공백이 있는 경우 */ font-family:"폰트 이름","폰트 이름2","폰트 이름3" /* 폰트이름에 공백이 없는 경우 */ font-family:폰트이름,폰트이름2,폰트이름3 /* 혼용해서 사용할 경우 */ font-family:폰트이름,"폰트 이름2" }
웹폰트
웹폰트 적용법
@font-face
- 웹폰트 파일 준비 (확장자명: woff/ woff2/ ttf/ eot)
- CSS 문서에서 @font-face 이용 폰트 파일 불러오기
- 불러온 폰트 파일 이용하여 font-family 만들기
- 만든 font-family 사용
@import
- 구글 폰트에 접속하여 원하는 폰트 찾기
- import 선택 후, 해당 import 구문 css 파일에 입력
font-size
font-size: 15px font-size: 20em font-size: 25rem
font-weight
font-weight: 700
text-decoration
text-decoration: underline text-decoration: overline text-decoration: line-through text-decoration: none
color
/* 헥스코드 입력시(헥스코드는 6자리 입니다.) */ color : #000000 /* rgb색상 이용시 */ color : rgb(0,0,0) /* 키워드 이용시 */ color: red
line-height
line-height: 2.0
letter-spacing
letter-spacing: 0.1rem
word-spacing
word-spacing: 3px
text-align
text-align: center text-align: left text-align: right text-align: justify
vertical-align
vertical-align: top vertical-align: middle vertical-align: bottom
text-indent
text-indent: 10%
text-transform
text-transform: cpaitalize text-transform: none text-transform: uppercase text-transform: lowercase
word-break
work-break: keep-all word-break: break-all
overflow-wrap
overflow-wrap: normal overflow-wrap: break-word
overflow
overflow: visible overflow: hidden overflow: scroll overflow: auto
text-overflow
white-space: nowrap;
overflow: hidden;
text-overflow: clip text-overflow: ellipsis
px = pixel 화소
pt(포인트) = 1/72 inch (인치)
%
em
/* font-size : 16px 인 경우 */ 1em => 16 * 1 = 16px 0.8em => 16 * 0.8 = 12.8px 3em => 16 * 3 = 48px
rem
/* font-size : 16px 인 경우 */ 1rem => 16 * 1 = 16px 0.8rem => 16 * 0.8 = 12.8px 3rem => 16 * 3 = 48px