CSS 프로퍼티 나열 방식에 대한 여러 방법론(Randomly, Grouped by type, By line length, lphabeitcal…)이 존재하지만, 다수에 의해 보편적으로 선호되는 방식은 타입에 의한 분류법(Grouped by type)이다.
.selector {
/* Positioning */
position: absolute;
z-index: 10;
top: 0;
right: 0;
/* Display & Box Model */
display: inline-block;
overflow: hidden;
box-sizing: border-box;
width: 100px;
height: 100px;
padding: 10px;
border: 10px solid #333;
margin: 10px;
/* Color */
background: #000;
color: #fff
/* Text */
font-family: sans-serif;
font-size: 16px;
line-height: 1.4;
text-align: right;
/* Other */
cursor: pointer;
}
CSS 속성 선언을 그룹 단위로 조직화시키고 개인 또는 팀 내부의 표준으로 채택하는 일은 중요하다. 일관셩 있지 못한 코드는 얼마 지나지 않아 질척해보이기 시작할 것이고, 사소한 포맷을 수정하기 위해 더 많은 시간을 할애하게 만들 것이기 때문이다. 그러나 무엇보다도, 각 룰셋에서 타입별로 그룹화된 속성들을 항상 일관된 순서로 위치시킴으로써 이전보다 CSS 코드를 덜 살펴보고도 더 빠르게 이해할 수 있게 만들 것이다.
position
z-index
top
bottom
left
right
trasnform
float
clear
display
flex-direction
flex-wrap
justify-content
align-content
align-items
order
flex-grow
flex-shrink
flex-basis
align-self
visibility
overflow
clip
이 범주에 속하는 속성들은 밖에서 안으로 향하는 순서(From outside in)로 나열한다. 원래대로라면 border
속성도 Box model 범주에 포함시켜야하겠지만, border 영역은 두께만 단독으로 선언하지 않고 색상(Color)을 함께 선언하는 경우가 대부분이므로 Color 범주로 포함시킨다.
box-sizing
width
min-width
max-width
height
min-height
max-height
margin
padding
color
border
border-radius
background
box-shadow
opacity
font
font-family
font-size
font-weight
font-style
font-variant
font-size-adjust
font-stretch
font-effect
font-emphasize
font-emphasize-position
font-emphasize-style
font-smooth
line-height
letter-spacing
white-space
word-break
text-overflow
transition
animation
cursor
outline
outline-width
outline-style
outline-color
outline-offset
:hover
:focus
:active
:first-child
:last-child
::before
::after
.selector {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%);
display: flex;
justify-content: center;
align-items: center;
box-sizing: border-box;
width: 100%;
max-width: 1280px;
margin: 40px;
padding: 20px;
color: #00c896;
border: 1px solid #00c896;
font-family: Lato sans-serif;
font-size: 18px;
font-weight: 500;
}