·CSS 속성

CSS 속성 154개 사전

속성마다 무엇을 하는지, 자주 쓰는 값은 무엇인지, 자식에게 물려주는지를 한 줄로 정리했습니다.

배치11

요소를 어떤 상자로 다룰지, 넘칠 때 어떻게 할지 정하는 속성들입니다.

플렉스·그리드24

요소를 줄 세우고 격자에 앉히는 속성들입니다. 오늘날 배치는 대부분 이 둘로 합니다.

flex-direction플렉스 항목을 가로로 놓을지 세로로 놓을지 정합니다.flex-wrap한 줄에 다 못 들어갈 때 줄을 바꿀지 정합니다.flex남는 자리를 어떻게 나눌지 한 번에 정합니다. flex: 1이면 고르게 나눕니다.flex-grow남는 자리를 얼마나 가져갈지 정합니다.flex-shrink자리가 모자랄 때 얼마나 줄어들지 정합니다. 0이면 안 줄어듭니다.flex-basis늘거나 줄기 전의 기준 크기입니다.justify-content주축 방향으로 항목들을 어떻게 늘어놓을지 정합니다.align-items교차축 방향으로 항목들을 어떻게 맞출지 정합니다. center가 세로 가운데입니다.align-self한 항목만 다르게 맞출 때 씁니다.align-content줄이 여러 개일 때 줄 사이를 어떻게 나눌지 정합니다.gap항목 사이의 간격입니다. 여백과 달리 바깥쪽에는 생기지 않습니다.row-gap줄과 줄 사이의 간격만 정합니다.column-gap칸과 칸 사이의 간격만 정합니다.orderHTML 순서를 그대로 두고 보이는 차례만 바꿉니다.grid-template-columns그리드의 칸을 몇 개, 어떤 너비로 만들지 정합니다.grid-template-rows그리드의 줄을 몇 개, 어떤 높이로 만들지 정합니다.grid-template-areas칸에 이름을 붙여 배치를 그림처럼 적습니다.grid-column한 항목이 가로로 몇 칸을 차지할지 정합니다.grid-row한 항목이 세로로 몇 줄을 차지할지 정합니다.grid-auto-flow자리를 지정하지 않은 항목을 어느 방향으로 채울지 정합니다.grid-auto-rows자동으로 생기는 줄의 높이를 정합니다.place-items가로와 세로 정렬을 한 번에 정합니다. center 하나로 가운데가 됩니다.place-content내용 덩어리 자체를 가로세로로 어디에 놓을지 정합니다.justify-items각 칸 안에서 항목을 가로로 어디에 둘지 정합니다.

상자와 여백16

크기와 여백입니다. 바깥 여백은 겹쳐 합쳐지고, 안쪽 여백에는 배경색이 칠해집니다.

글자25

글꼴과 줄 간격, 정렬처럼 읽히는 모양을 정합니다. 대부분 자식에게 물려집니다.

font-size글자 크기입니다. rem은 뿌리 글자 크기의 배수라 확대 설정을 따라갑니다.font-family글꼴을 정합니다. 앞의 것이 없으면 뒤로 넘어가므로 마지막에 갈래를 적습니다.font-weight글자 굵기입니다. 400이 보통, 700이 굵게입니다.font-style기울임 여부를 정합니다.font글꼴 관련 값을 한 줄에 몰아 적습니다. 빠뜨린 값은 기본값으로 되돌아갑니다.line-height줄 간격입니다. 단위 없이 1.5처럼 적는 편이 물려줄 때 안전합니다.letter-spacing글자 사이 간격입니다. 큰 제목에서 살짝 좁히면 정돈돼 보입니다.word-spacing낱말 사이 간격입니다.text-align글의 좌우 정렬을 정합니다.text-decoration밑줄이나 취소선을 붙입니다. 링크의 기본 밑줄을 없앨 때도 씁니다.text-decoration-line어떤 줄을 그을지만 정합니다.text-decoration-color그 줄의 색만 따로 정합니다.text-decoration-style줄의 모양을 정합니다. wavy는 맞춤법 검사처럼 물결선입니다.text-transform대소문자를 강제로 바꿉니다. 화면만 바뀌고 원래 글자는 그대로입니다.text-indent첫 줄을 들여씁니다.text-overflow넘치는 글을 말줄임표로 잘라 보여 줍니다. overflow와 nowrap이 함께 있어야 합니다.text-shadow글자에 그림자를 답니다. 밝은 배경 위 흰 글씨를 살릴 때 씁니다.white-space공백과 줄바꿈을 어떻게 다룰지 정합니다. nowrap이면 한 줄로 이어집니다.word-break긴 낱말을 어디서 자를지 정합니다. keep-all은 한국어에서 낱말이 쪼개지지 않게 합니다.overflow-wrap줄을 넘기지 못하는 긴 문자열을 강제로 넘깁니다. 긴 주소에 씁니다.writing-mode글의 흐름 방향을 바꿉니다. 세로쓰기에 씁니다.vertical-align한 줄 안에서 위아래로 어디에 맞출지 정합니다. 표 칸에서도 쓰입니다.font-variant-numeric숫자 모양을 고릅니다. tabular-nums는 자릿수를 맞춰 표에서 흔들리지 않게 합니다.hyphens줄 끝에서 낱말을 붙임표로 나눌지 정합니다. 언어 설정이 있어야 동작합니다.text-wrap줄을 어떻게 나눌지 정합니다. balance는 제목의 줄 길이를 고르게 맞춥니다.

색과 배경13

글자색과 배경색, 그러데이션과 투명도입니다.

테두리13

테두리와 모서리, 그림자입니다. outline은 자리를 차지하지 않습니다.

효과7

흐림·자르기·채우기처럼 다 그린 뒤에 거는 효과입니다.

변형과 움직임14

옮기고 돌리고 부드럽게 잇습니다. 배치를 건드리지 않아 화면이 덜 흔들립니다.

위치7

요소를 흐름에서 떼어 원하는 자리에 놓습니다. 앞뒤는 z-index로 정합니다.

4

표의 테두리와 칸 너비를 다루는 속성들입니다.

목록4

목록 기호의 모양과 자리를 정합니다.

조작9

마우스와 손가락, 스크롤에 어떻게 반응할지 정합니다.

인쇄·기타7

인쇄와 자동 번호 매기기처럼 나머지 쓰임입니다.

읽는 방법

  • 상속되는 속성은 부모에 한 번만 적으면 자식이 모두 물려받습니다. 글자에 관한 속성이 대부분 그렇습니다.
  • 단축 속성은 적지 않은 값을 기본값으로 되돌립니다. background: red만 쓰면 앞서 넣은 배경 그림도 함께 지워집니다.
  • 같은 요소에 규칙이 겹치면 더 구체적인 선택자가 이깁니다. 구체성이 같을 때만 나중에 적힌 것이 이깁니다.
  • 움직임은 transform과 opacity로 만드는 편이 부드럽습니다. width나 top을 바꾸면 배치를 다시 계산해야 합니다.

자주 묻는 질문

Q. CSS 속성은 모두 몇 개인가요?

표준에 올라 있는 것만 500개가 넘지만, 실제로 손이 가는 것은 그중 일부입니다. 여기에는 화면을 만들 때 반복해서 쓰게 되는 154개를 갈래별로 실었습니다.

Q. 상속된다는 게 무슨 뜻인가요?

부모에 적으면 자식이 따로 적지 않아도 같은 값을 쓴다는 뜻입니다. 글꼴·글자색·줄 간격처럼 글에 관한 속성이 대부분 그렇고, 여백이나 테두리는 물려주지 않습니다.

Q. 단축 속성을 쓰면 뭐가 달라지나요?

한 줄로 여러 값을 정할 수 있지만, 적지 않은 값은 기본값으로 되돌아갑니다. background: red만 쓰면 앞서 넣은 배경 그림이 함께 지워지는 것이 그 때문입니다.

Q. 같은 속성을 두 번 적으면 어느 쪽이 이기나요?

선택자가 얼마나 구체적인지를 먼저 봅니다. id가 class보다, class가 태그보다 셉니다. 구체성이 같을 때만 나중에 적힌 것이 이깁니다. !important는 그 판을 뒤집지만 쓰지 않는 편이 낫습니다.

Q. px과 rem 중 무엇을 써야 하나요?

rem은 뿌리 글자 크기의 배수라, 사용자가 브라우저에서 글자를 키우면 함께 커집니다. 글자와 여백에는 rem이 안전하고, 얇은 테두리처럼 늘 같아야 하는 값에는 px이 낫습니다.