block 또는 inline 특성을 가지는 요소는 box 형태를 가지며, box 형태의 세부 사항을 수정할 수 있음
프로퍼티 | 설명 |
---|---|
content | width, height |
padding | 프로퍼티 값은 패딩 영역의 두께를 의미, 기본색은 투명이므로, 요소에 적용된 배경의 컬러, 이미지가 패딩 영역에 적용 |
border | 프로퍼티 값으로 테두리 두께 지정 가능 |
margin | 프로퍼티로 마진 영역의 두께 지정 가능, 기본색은 투명이며, 배경색 지정 불가 |
컨텐츠가 지정된 width/height를 넘어가는 경우, overflow 프로퍼티를 hidden으로 설정하면 넘친 컨텐츠를 감출 수 있음 (차지했던 영역도 삭제)
max-width/max-height 프로퍼티
요소 너비가 브라우저 너비보다 큰 경우 가로 스크롤바가 만들어진다. 이때 max-width를 사용하면 자동으로 요소 너비가 줄어든다.
margin: 10px 20px 30px 40px
// 다음과 동일
margin-top: 10px;
margin-right: 20px;
margin-bottom: 30px;
margin-left: 40px;
margin: 10px 20px 30px
// 다음과 동일
margin-top: 10px;
margin-right: 20px; margin-left: 20px
margin-bottom: 30px;
margin: 10px 20px
// 다음과 동일
margin-top: 10px; margin-bottom: 10px;
margin-right: 20px; margin-left: 20px;
margin: 10px
// 다음과 동일
margin-top: 10px; margin-bottom: 10px; margin-right: 10px; margin-left: 10px;
width: 100px // 명시적으로 지정해야 함
margin-left: auto;
margin-right: auto;
// 다음과 동일
margin: 10px auto;
border-style
border-width
border-color
border-radius
border-width, border-style, border-color 순으로 한번에 세가지 프로퍼티를 설정
div {
border: 4px solid orange;
}
width, hieght 대상 영역 설정
css 적용 시 모든 block 요소는 border-box로 설정하는 것이 일반적이다.
전체 요소에 box-sizing을 border-box로 설정하기 위해 다음과 같은 CSS 설정을 많이 사용한다.
*,
*::before,
*::after {
box-sizing: border-box;
}
해당 요소의 배경 이미지 또는 색상 설정
요소에 배경 이미지를 설정
배경 이미지가 요소 사이즈보다 작을 때, 반복해서 해당 사이즈를 채울 것인지를 설정
프로퍼티 값 | 설명 |
---|---|
repeat | 요소의 배경 영역을 채울 때까지 이미지 반복, 이미지가 넘치면 자름 |
space | 요소가 잘리지 않을 만큼만 이미지 반복, 처음과 마지막 반복 이미지는 요소의 양쪽 끝에 고정 후, 각 이미지 사이의 남은 여백을 고르게 분배, 이미지 크기가 요소 사이즈보다 큰 경우 이미지 잘림 |
round | 요소 사이즈가 늘어나면 반복해서 이미지를 채우고, 이미지가 잘리지 않도록 전체 반복 이미지 사이즈 재조정 |
no-repeat | 이미지를 반복하지 않음, 반복하지 않는 이미지의 위치는 background-position 프로퍼티로 설정 |
반복 세부 설정
한 개의 값으로 설정 | 두개의 값으로 설정 |
---|---|
repeat-x (가로로만 이미지 반복) | repeat no-repeat |
repeat-y (세로로만 이미지 반복) | no-repeat repeat |
repeat (가로/세로 모두 이미지 반복) | repeat repeat |
space | space space |
round | round round |
no-repeat | no-repeat no-repeat |
배경 이미지가 요소 사이즈보다 작을 때 반복해서 해당 사이즈를 채울 것인지를 설정 (backgroud-repeat 프로퍼티와 기능은 동일)
auto: 이미지 크기 유지 (기본값)
length: 값을 두개 넣으면 첫번째 값이 가로 크기, 두번째 값이 세로 크기, 값을 한개 넣으면 가로 크기로 설정되며, 이때 세로 크기는 원본 이미지의 가로 세로 비율에 맞게 자동 설정, px, % 등의 값으로 설정 가능
cover: 요소 사이즈를 다 채울 수 있게 이미즈를 확대 또는 축소, 가로 세로 비율 유지
contain: 요소 사이즈를 벗어나지 않는 최대 크기로 이미지를 확대 또는 축소, 가로 세로 비율 유지
복수 이미지 설정 시 background-size는
,
로 각 이미지 사이즈 설정 가능
스크롤과 무관하게 배경 이미지 고정 설정
background-attachment: fixed;
background-image는 디폴트로 좌측 상단에 이미지 위치
background-position으로 좌표(x, y)를 지정할 수 있음
두 값으로 설정 가능, 한가지 값으로 설정하는 경우 나머지 값은 center
CSS 색상 단위로 배경색 설정 가능
transparent: 투명 설정 (디폴트)
다음 순서로 다양한 background 프로퍼티 한번에 설정
background: color image repeat attachment position
보통 length: rem 사용하는것이 가장 안전
모든 HTML 태그는 각 태그마다 디폴트로 block 또는 inline 특성을 가짐
해당 속성은 display 프로퍼티를 통해서 변경 가능
요소의 display 프로퍼티를 설정
요소를 보이게 할 것인지 아닌지를 설정
display: none;은 해당 요소가 차지하는 공간까지 사라지지만, visibility: hidden;은 해당 요소가 차지하는 공간은 남겨둠
block과 inline 특성 모두를 가짐
inline 요소와 같이 한 라인에 표현되면서도 width, height, margin, padding 등의 프로퍼티 지정 가능
// 자동 추가되는 space 삭제 트릭
// 1. 태그와 태그 사이를 붙임
<strong>프론트엔드</strong><strong>
프론트엔드</strong>
// 2. 태그 닫기와 열기를 붙임
<strong>프론트엔드</strong
><strong>프론트엔드</strong>
// 3. 태그와 태그 사이를 주석 처리
<strong>프론트엔드</strong><!--
--><strong>프론트엔드</strong>
문자 크기 서정
font-family를 통해 설정된 맨앞의 폰트를 먼저 찾고, 해당 폰트가 없으면 다음 포트, 그 다음 폰트 순으로 폰트 설정 시도
일반적으로 font-family에 세가지 폰트를 설정하며, 세번째 폰트로는 seif, sans-seif를 많이 사용한다.
웹폰트를 사용하면, 각 사용자 PC에 해당 폰트가 설치되어 있지 않아도 웹브라우저에서 해당 폰트를 다운로드 받아서 웹페이지가 표시됨 (경량화된 형태)
link 태그 복사
font-family 설정에서 폰트 이름 확인
작성할 html 페이지에 head에 복사한 link 태그를 넣은 후 font-family 이름으로 폰트 설정
...
<head>
...
<link href="https://fonts.googleapis.com/css2?family=Black+Han+Sans&display=swap" rel="stlyesheet">
<stlye>
.font-black-han-sans { font-family: 'Black Han Sans', sans-serif; }
</style>
</head>
<body>
<p class='font-black-han-sans'>테스트</p>
</body>
글자 굵기 설정
소문자를 소문자 크기의 대문자로 바꾸는 설정
라인 높이 설정
1.2
(브라우저 디폴트 설정값)font: font-style(optional) font-variant(optional) font-weight(optional) font-size(optional) line-height(optional) font-family(essential)
// font-size font-family
font: 1.2em "Fira Sans", sans-serif;
// font-style font-variant font-weight font-size/line-height font-family
// font-size와 line-height는 font-size/line-height와 같이 설정 가능
font: italic small-caps lighter 16px/1.5 sans-serif
글자 사이 간격은 letter-spacing, 단어 사이 간격은 word-spacing으로 설정
보통 px 단위를 사용하여 설정, 음수 가능
글자 수평 정렬 설정
스페이스, 탭, 줄바꿈, 자동 줄바꿈 설정
프로퍼티 값 | 스페이스와 탭 | 줄바꿈 | 자동 줄바꿈 |
---|---|---|---|
normal | 병합 | 병합 | O |
nowrap | 병합 | 병합 | X |
pre | 보존 | 보존 | X |
pre-wrap | 보존 | 보존 | O |
pre-line | 병합 | 보존 | O |
문자열이 부모 영역을 벗어나는 경우 자동 줄바꿈이 되지 않은 문자열 처리 설정
다음 조건이 설정되어 있는 상태에서만 설정 가능
text-overflow 프로퍼티 값
이 외의 string 등의 프로퍼티 값은 호환성 이슈로 사용 지양