일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 타입스크립트
- 알고리즘
- 백준 #코딩테스트 #코테 #알고리즘
- 유니티 #게임개발
- 백준 #코딩테스트
- 리액트
- 혼공머신
- axios
- typeScript
- error맛집
- 백준
- 초기값 설정하기
- 혼자공부하는머신러닝
- js
- Redux
- 구조분해할당
- CSS
- useEffect
- 혼자공부하는머신러닝딥러닝
- reactmemo
- 딥러닝
- 코딩테스트
- styledcomonents
- clipboardapi
- 에러해결방안
- TS
- 혼공챌린지
- REACT
- 혼공단
- 머신러닝
- Today
- Total
좌충우돌 개발자의 길
[CSS] 폰트, 텍스트 본문
1. 타이포그래피의 구조
•em 폰트의 전체 높이
•ex ( = x-height ) 해당 폰트의 영문 소문자 x의 높이
•Baseline 소문자 x를 기준으로 하단의 라인
•Descender 소문자에서 baseline 아래로 쳐지는 영역을 의미. 서체에 따라 descender의 길이가 다릅니다. ( g, j, p, q, y )
•Ascender 소문자 x의 상단 라인 위로 넘어가는 영역을 의미합니다. ( b, d, h, l )
2. generic-family
family-name으로 지정된 글꼴을 사용할 수 없을 경우를 대비해, 브라우저가 대체할 수 있는 폰트가 필요한 경우 선택할 수 있게 해줌. font-family 속성의 맨 마지막에 선언해야 하며, 키워드이기 때문에 따옴표 등의 인용부호로 묶지 않는 것이 원칙
3. line-height
- line-height는 텍스트 라인의 높이를 의미하는 것으로 주로 행간을 제어할 때 사용
- line-height로 제어되는 부분을 line-box라고도 하며 이는 타이포그래피 구조에서 배웠던 [em 박스] + [상하단의 여백]까지를 의미
- 속성값 차이
- number 부모 요소의 숫자 값이 그대로 상속됩니다. 즉, 자식 요소에서도 또 한 번 자식 요소의 font-size를 기준으로 계산된 값을 가짐
- % 부모 요소에서 %값이 그대로 상속되는 것이 아니고, %에 의해 이미 계산된 px값이 상속.
body { font-size: 20px; line-height: 2; } /* line-height = 40px; */
body { font-size: 20px; line-height: 200%; } /* line-height = 40px; */
/*두 경우 모두 <body>에 똑같이 line-height: 40px이 적용됩니다.*/
/*하지만 자식 요소로 <p>가 있다고 생각을 하면 얘기가 달라집니다.*/
body { font-size: 20px; line-height: 2; } /* line-height = 40px; */
p { font-size: 10px; } /* line-height = 20px; */
body { font-size: 20px; line-height: 200%; } /* line-height = 40px; */
p { font-size: 10px; } /* line-height = 40px; */
=> 계산된 값이 아닌 숫자 값을 상속한다는 사실 때문에, 숫자 값을 사용하면 부모 엘리먼트에서 계산된 값 대신 비율을 그대로 상속받을 수 있으므로, 가능하면 단위가 없는 값을 사용하는 것이 좋음.
4. font-size
- length px, em, rem 등의 단위를 이용
- - em : 부모 요소의 font-size에 em 값을 곱한 크기 - rem : 루트의 font-size에 rem 값을 곱한 크기
- percent (%) 부모 요소의 font-size를 기준으로 백분율 계산된 값을 지정
- viewport units vw, vh 단위로 뷰포트를 기준으로 하여, 유동적인 font-size를 지정 가능. vw는 뷰포트 width의 1%, vh는 뷰포트 height의 1% 값을 가짐.
5. font-weight
- 실무에서는 normal과 bold를 많이 사용, 부모 요소에 영향이 있는 bolder와 lighter는 사용을 될 수 있으면 지양.
- 기본적으로 400은 normal과 같고, 700은 bold와 같음
6. font-style
- oblique 텍스트의 기울기에 대한 각도를 추가로 지정할 수 있습니다. -> font-weight oblique <각도>;
7. font-variant
- small-caps : 이 속성을 이용해 모든 소문자를 대문자로 변환할 수 있음
- 변환된 대문자는 실제 대문자 사이즈 보다 더 작은 사이즈로 나타나며 대소문자 변환이기 때문에 한글에는 적용되지 않습니다.
8. font
- font 관련 속성들을 축약해 지정할 수 있음 (실무에서 잘 사용하지 않지만 해석할 줄 알아야함)
- 선언 순서를 지켜야하며, 필수적으로 들어가야할 속성들이 있음 -> (font-size와 font-family)
font: font-style font-variant font-weight font-size/line-height font-family | initial | inherit;
9. 다양한 font
- 시스템 폰트 : font-family로 선언한 글꼴이 사용자 시스템에 기본으로 설치가 되어 있어 사용할 수 있는 경우
- 이미지 폰트 : 특정 글꼴을 사용하는 것이 아니고, 글자를 표현함에 있어 시각적인 요소를 많이 넣고 싶을 때 글꼴 대신 이미지를 이용해서 표현하는 경우를 의미. 정확히 얘기하면 이미지 폰트는 폰트가 아니고 이미지임.
- 웹 폰트 : 서버에 저장해 제공하거나, 웹 경로를 통해 사용하는 폰트 (@font-face)
10. vertical-align
block 요소가 아닌 inline 또는 inline-block에서만 사용 가능, 따라서 display이 속성이 변하지 않은 div, p와 같은 블록레벨 요소에는 적용 불가
- 속성 keyword
- sub : 부모 아래 첨자 기준으로 정렬
- super : 부모 위 첨자 기준으로 정렬
- text-top : 부모 텍스트의 맨 위(Ascender 제외)
- text-bottom : 부모의 텍스트의 맨 아래(Descender 제외)
- middle : 부모의 중앙에 위치
- top : 부모의 맨 위 위치
- bottom : 부모의 맨 아래 위치
11. text-align
인라인 요소의 수평 정렬에 사용. 이 속성 또한 div와 같은 블록 레벨 요소에는 적용 불가.
- 그렇다면 block 요소를 가운데 정렬 하고자 한다면 어떻게 해야 할까?
- 박스모델 챕터에서 다룬 margin의 auto 값을 이용
- 가운데 정렬 인라인 요소 : text-align (center) 블럭 요소 : margin (auto)
12. text-indent 속성
텍스트의 들여쓰기를 지정하는 속성
- length 문단의 첫 줄에 대한 들여쓰기를 수행. 음수 값을 사용할 수 있으며, 음수 값 사용 시 왼쪽으로 이동.
- percent ( % ) 텍스트를 포함하는 컨테이너 블록의 width(부모의 width)를 기준으로 변환된 백분율 값으로 들여쓰기
13. text-decoration 속성
/*기본 값 : none currentColor solid*/
text-decoration: text-decoration-line text-decoration-color text-decoration-style | initial | inherit;
14. 단어 관련 속성
- white-space 속성
요소 안에 공백을 어떻게 처리할지 지정하는 속성입니다.
- letter-spacing 속성
자간을 지정하는 속성입니다.
- word-spacing 속성
단어 사이의 간격을 지정하는 속성입니다.
- word-break 속성
단어가 라인 끝에 나올 경우 어떻게 처리할지(중단점) 지정하는 속성입니다.
- word-wrap 속성
요소를 벗어난 단어의 줄바꿈을 지정하는 속성입니다.
white-space: normal | nowrap | pre | pre-line | pre-wrap | initial | inherit;
letter-spacing: normal | length | initial | inherit;
word-spacing: normal|length|initial|inherit;
word-break: normal | break-all | keep-all | initial | inherit;
word-wrap: normal|break-word|initial|inherit;
'STUDYING > HTML & CSS' 카테고리의 다른 글
[CSS] 미디어쿼리 (0) | 2022.05.09 |
---|---|
[CSS] 레이아웃 (0) | 2022.05.08 |
[CSS] 단위, 배경, 박스모델 (0) | 2022.05.05 |
[CSS] 헷갈리는 부분 타파하기! (0) | 2022.05.03 |
[HTML] 헷갈리는 부분 타파하기! (0) | 2022.05.03 |